Files
SzmediTools/Szmedi.RvKits/UserTreeView.xaml
2025-09-16 16:06:41 +08:00

93 lines
5.3 KiB
XML

<UserControl
x:Class="Szmedi.RvKits.Assists.UserTreeView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:helper="clr-namespace:Szmedi.RvKits.Assists"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:models="clr-namespace:Szmedi.RvKits.Models"
d:DesignHeight="300"
d:DesignWidth="300"
Background="{DynamicResource MaterialDesign.Brush.Background}"
TextElement.Foreground="{DynamicResource MaterialDesign.Brush.Foreground}"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary Source="pack://application:,,,/Szmedi.RvKits;component/WPFUI.xaml" />
</UserControl.Resources>
<Grid>
<DockPanel>
<Border>
<TreeView x:Name="UserTree">
<TreeView.ContextMenu>
<ContextMenu>
<MenuItem x:Name="menuExpandAll" Click="menuExpandAll_Click" Header="全部展开">
<MenuItem.Icon>
<md:PackIcon Kind="ExpandAll" />
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="menuUnExpandAll" Click="menuUnExpandAll_Click" Header="全部折叠">
<MenuItem.Icon>
<md:PackIcon Kind="CollapseAll" />
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="menuSelectAll" Click="menuSelectAll_Click" Header="全部选中">
<MenuItem.Icon>
<md:PackIcon Kind="CheckAll" />
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="menuUnSelectAll" Click="menuUnSelectAll_Click" Header="全部取消">
<MenuItem.Icon>
<md:PackIcon Kind="ListBox" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</TreeView.ContextMenu>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<EventSetter Event="UIElement.PreviewMouseRightButtonDown" Handler="TreeViewItem_PreviewMouseRightButtonDown" />
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type models:TreeModel}" ItemsSource="{Binding Children}">
<StackPanel x:Name="staTree" Margin="-2,0,0,0" Orientation="Horizontal">
<CheckBox
Click="treeNode_Click"
FontFamily="微软雅黑"
FontSize="14"
Foreground="{DynamicResource MaterialDesign.Brush.Foreground}"
IsChecked="{Binding IsChecked, Mode=TwoWay}"
Tag="{Binding Children}"
ToolTip="{Binding ToolTip}">
<!--<CheckBox.ContextMenu>
<ContextMenu>
<MenuItem
x:Name="menuSelectAllChild"
Click="menuSelectAllChild_Click"
Header="全部选中子项">
<MenuItem.Icon>
<Image Source="/FamilyTools;component/Images/16_16/Checked_16px.png" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</CheckBox.ContextMenu>-->
<StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Source="{Binding Icon}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</CheckBox>
</StackPanel>
<!--<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding IsChecked}" Value="true">
<Setter TargetName="staTree" Property="Background" Value="White" />
</DataTrigger>
</HierarchicalDataTemplate.Triggers>-->
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Border>
</DockPanel>
</Grid>
</UserControl>