WPF效果第一百九十八篇之模块对比

前面效果中分享了彩色马蹄图的效果和范围内拖拽;这不大假期的时间反正没啥事就在家撸代码;今天又是LisBox实现的效果,看最终效果:.

WPF效果第一百九十八篇之模块对比

1、刚开始一朋友说用DataGrid来实现.首先把行对象转换成列对象,至于控制列的话,就后台重新赋值对象来控制前台.我是觉得太费劲直接放弃了;还是首选最爱;左侧是所有的行头,右侧是带有列头的集合,左侧的Visibility通过绑定集合对象和转换器来控制:
<WrapPanel VerticalAlignment="Center" HorizontalAlignment="Center">    <ListBox ItemsSource="{Binding RowHeaders}"                             VerticalContentAlignment="Center" Margin="0,40,0,0"                             ItemsPanel="{StaticResource MyPanel}" ItemTemplate="{StaticResource ColorDataTemplate}"                             ItemContainerStyle="{StaticResource ListBoxItemStyle}"                             Visibility="{Binding SummaryModules.Count,Converter={StaticResource SummaryModulesCountToVisibilityConverter}}"/>    <ListBox Name="DataListBox" HorizontalAlignment="Left" ItemsSource="{Binding SummaryModules}"                             ItemsPanel="{StaticResource SummaryModulesPanel}" ItemTemplate="{StaticResource SummaryModulesDataTemplate}"                             ItemContainerStyle="{StaticResource SummaryModulesListBoxItemStyle}"/></WrapPanel>
2、左侧的BorderThickness通过多值绑定和转换器控制:
<Setter Property="BorderThickness">    <Setter.Value>        <MultiBinding Converter="{StaticResource RowHeadersIndexToBorderThicknessConverter}" ConverterParameter="true">            <Binding/>            <Binding RelativeSource="{RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBox},AncestorLevel=1}" Path="ItemsSource"/>        </MultiBinding>    </Setter.Value></Setter>
3、右侧就是比较low的方式:
<DataTemplate x:Key="SummaryModulesDataTemplate">    <WrapPanel Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">        <Border>            <TextBlock Text="{Binding ModuleType,Converter={StaticResource ModuleTypeEnumToShowNameConverter}}"/>        </Border>        <Border>            <TextBlock Text="{Binding Red}"/>        </Border>        ......    </WrapPanel></DataTemplate>

关于呈现无非就是集合的修改,最终简单的效果先这样吧;以后有时间的话,可以再去摸索一下更复杂的效果;编程不息、Bug不止、无Bug、无生活;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!