Files
Shrlalgo.RvKits/Wpf.Ui.Extend/UserControls/MultiCheckTreeView.xaml
2024-09-22 11:05:41 +08:00

69 lines
3.8 KiB
XML

<UserControl
x:Class="Wpf.Ui.Extend.UserControls.MultiCheckTreeView"
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:models="clr-namespace:Wpf.Ui.Extend.Models"
d:DesignHeight="300"
d:DesignWidth="300"
mc:Ignorable="d">
<Grid>
<DockPanel>
<Border>
<TreeView x:Name="MultiCheckTree" d:ItemsSource="{d:SampleData}">
<TreeView.ContextMenu>
<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"
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
VerticalAlignment="Center"
Foreground="Black"
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>