WPF效果第一百九十八篇之模块对比
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF效果第一百九十八篇之模块对比相关的知识,希望对你有一定的参考价值。
前面效果中分享了彩色马蹄图的效果和范围内拖拽;这不大假期的时间反正没啥事就在家撸代码;今天又是LisBox实现的效果,看最终效果:
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的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下!
以上是关于WPF效果第一百九十八篇之模块对比的主要内容,如果未能解决你的问题,请参考以下文章