当前位置:   article > 正文

WPF TreeGrid(树形展开的表格)

wpf treegrid

一直都想要个树形展开的表格 像这样的



今天心血来潮就简单做了个TreeGrid 喜欢的同学可以下载下去自己研究下,其实也比较简单主要就是TreeView TreeViewItem再配合GridViewHeaderRowPresenter、GridViewRowPresenter、GridViewColumnCollection定制style基本上就可以实现以上效果

本文中涉及大量模板,绑定等知识,如果刚刚入门还没有了解以上知识的同学可以先补下课,然后再来看,以免浪费时间。

闲话不多说,直接上代码:

前台代码 MainWindow.xaml

  1. <Window x:Class="TreeGrid.MainWindow"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:local="clr-namespace:TreeGrid"
  5. Title="MainWindow" Height="350" Width="525">
  6. <Window.Resources>
  7. <local:LevelToMarginConverter x:Key="LevelToIndentConverter"/>
  8. <Style x:Key="ExpandCollapseToggleStyle"
  9. TargetType="{x:Type ToggleButton}">
  10. <Setter Property="Focusable"
  11. Value="False"/>
  12. <Setter Property="Width"
  13. Value="19"/>
  14. <Setter Property="Height"
  15. Value="13"/>
  16. <Setter Property="Template">
  17. <Setter.Value>
  18. <ControlTemplate TargetType="{x:Type ToggleButton}">
  19. <Border Width="19"
  20. Height="13"
  21. Background="Transparent">
  22. <Border Width="9"
  23. Height="9"
  24. BorderThickness="1"
  25. BorderBrush="#FF7898B5"
  26. CornerRadius="1"
  27. SnapsToDevicePixels="true">
  28. <Border.Background>
  29. <LinearGradientBrush StartPoint="0,0"
  30. EndPoint="1,1">
  31. <LinearGradientBrush.GradientStops>
  32. <GradientStop Color="White"
  33. Offset=".2"/>
  34. <GradientStop Color="#FFC0B7A6"
  35. Offset="1"/>
  36. </LinearGradientBrush.GradientStops>
  37. </LinearGradientBrush>
  38. </Border.Background>
  39. <Path x:Name="ExpandPath"
  40. Margin="1,1,1,1"
  41. Fill="Black"
  42. Data="M 0 2 L 0 3 L 2 3 L 2 5 L 3 5 L 3 3
  43. L 5 3 L 5 2 L 3 2 L 3 0 L 2 0 L 2 2 Z"/>
  44. </Border>
  45. </Border>
  46. <ControlTemplate.Triggers>
  47. <Trigger Property="IsChecked"
  48. Value="True">
  49. <Setter Property="Data"
  50. TargetName="ExpandPath"
  51. Value="M 0 2 L 0 3 L 5 3 L 5 2 Z"/>
  52. </Trigger>
  53. </ControlTemplate.Triggers>
  54. </ControlTemplate>
  55. </Setter.Value>
  56. </Setter>
  57. </Style>
  58. <DataTemplate x:Key="CellTemplate_Name">
  59. <DockPanel>
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/582867
推荐阅读
相关标签
  

闽ICP备14008679号