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效果第一百九十八篇之模块对比的主要内容,如果未能解决你的问题,请参考以下文章

WPF效果第一百九十九篇之Gamma曲线

WPF效果第一百九十篇之再耍ListBox

WPF效果第一百九十四篇之伸缩面板

WPF效果第一百九十一篇之框选ListBox

WPF效果第一百九十三篇之登录实现

WPF效果第一百九十五篇之又玩ListBox