Слияние кода завершено, страница обновится автоматически
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:DeskRedis.Converter"
xmlns:cc="clr-namespace:DeskRedis.MyControl.CustomControl">
<!-- 可视化树折叠展开的按钮样式 -->
<Style x:Key="ExpandCollapseToggleStyle" TargetType="ToggleButton">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="#FF565656"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid>
<!-- 画折叠样式 -->
<Border x:Name="CollapsePath"
Height="14" Width="10"
SnapsToDevicePixels="True"
Background="{TemplateBinding Background}">
<Path Data="M 0,0 8,7 0,14" Stretch="Fill"
Stroke="{TemplateBinding BorderBrush}"
StrokeThickness="1.5"
Height="14" Width="8"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="0,0,0,0">
<Path.LayoutTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="0"/>
<TranslateTransform/>
</TransformGroup>
</Path.LayoutTransform>
</Path>
</Border>
<!-- 画展开折叠样式 -->
<Border x:Name="ExpandPath"
Height="10" Width="14"
SnapsToDevicePixels="True"
Background="{TemplateBinding Background}"
Visibility="Collapsed">
<Path Data="M 0,0 8,7 0,14" Stretch="Fill"
Stroke="{TemplateBinding BorderBrush}"
StrokeThickness="1.5"
Height="14" Width="8"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="0,0,0,0">
<Path.LayoutTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform Angle="90"/>
<TranslateTransform/>
</TransformGroup>
</Path.LayoutTransform>
</Path>
</Border>
</Grid>
<ControlTemplate.Triggers>
<!-- 通过IsChecked判断折叠还是展开 -->
<Trigger Property="IsChecked" Value="True">
<Setter Property="Visibility" TargetName="CollapsePath" Value="Collapsed"/>
<Setter Property="Visibility" TargetName="ExpandPath" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<converter:TreeViewLastItemConverter x:Key="LineConverter"/>
<converter:TreeViewItemIconConverter x:Key="NodeTypeConverter"/>
<!-- (通用)可视化树孩子样式 -->
<Style TargetType="{x:Type cc:TreeViewItemWithOperator}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"></Setter>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="2"/>
<Setter Property="Foreground" Value="#FF565656"/>
<Setter Property="FontFamily" Value="FZLTZHUNHK"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type cc:TreeViewItemWithOperator}">
<Grid>
<Grid.ColumnDefinitions>
<!--展开折叠按钮以及连接线-->
<ColumnDefinition MinWidth="19" Width="Auto"/>
<!--键或文件夹图标-->
<ColumnDefinition MinWidth="20" Width="Auto"/>
<!--节点内容-->
<ColumnDefinition MinWidth="20" Width="*"/>
<!--刷新按钮-->
<ColumnDefinition MinWidth="20" Width="Auto"/>
<!--用于当节点展开的时候,不破坏样式-->
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="20"/>
<RowDefinition />
</Grid.RowDefinitions>
<!--连接线-->
<!--水平连接线-->
<Rectangle x:Name="HorLine"
Margin="9,0,0,0"
Height="1"
Stroke="#FF565656"
SnapsToDevicePixels="True"
StrokeDashCap="Square"
StrokeDashArray="3,5"
StrokeDashOffset="1"/>
<!--垂直连接线-->
<Rectangle x:Name="VerLine"
Width="1"
Stroke="#FF565656"
Margin="0,0,1,0"
Grid.RowSpan="2"
SnapsToDevicePixels="true"
Fill="White"
StrokeDashCap="Square"
StrokeDashArray="3,5"/>
<!--展开/折叠 按钮-->
<ToggleButton x:Name="Expander"
Grid.Column="0"
Grid.Row="0"
ClickMode="Press"
IsChecked="{Binding IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
Style="{StaticResource ExpandCollapseToggleStyle}"/>
<!--键或文件夹图标-->
<Path Grid.Row="0"
Grid.Column="1"
Width="16"
Height="16"
Stroke="Gray"
StrokeThickness="1"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Stretch="Uniform"
Data="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem},Converter={StaticResource NodeTypeConverter}}"/>
<!--节点-->
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
CornerRadius="1"
Grid.Row="0"
Grid.Column="2"
Grid.ColumnSpan="3"
Margin="1"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="true">
<ContentPresenter x:Name="PART_Header"
ContentSource="Header"
HorizontalAlignment="Left"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<!--操作按钮-->
<StackPanel x:Name="operation"
Visibility="Collapsed"
Grid.ColumnSpan="5"
Orientation="Horizontal"
HorizontalAlignment="Right"
VerticalAlignment="Center">
<cc:ImageButton x:Name="btnAdd"
Width="22"
Height="22"
ImageHeight="18"
ImageWidht="18"
Foreground="#FFFFFF"
Background="#6495ED"
MouseHoverColor="#CCB9D3EE"
MouseClickColor="#B9D3EE"
CornerRadius="0"
Margin="0 0 10 0"
ToolTip="添加"
PathData="{StaticResource ResourceKey=Add}"/>
<cc:ImageButton x:Name="btnEdit"
Width="22"
Height="22"
ImageHeight="18"
ImageWidht="18"
Foreground="#FFFFFF"
Background="#6495ED"
MouseHoverColor="#CCB9D3EE"
MouseClickColor="#B9D3EE"
CornerRadius="0"
Margin="0 0 10 0"
ToolTip="编辑"
PathData="{StaticResource ResourceKey=Edit}"/>
<cc:ImageButton x:Name="btnRefresh"
Width="22"
Height="22"
ImageHeight="18"
ImageWidht="18"
Foreground="#FFFFFF"
Background="#6495ED"
MouseHoverColor="#CCB9D3EE"
MouseClickColor="#B9D3EE"
CornerRadius="0"
Margin="0 0 10 0"
ToolTip="刷新"
PathData="{StaticResource ResourceKey=Refresh}"/>
<cc:ImageButton x:Name="btnDelete"
Width="22"
Height="22"
ImageHeight="18"
ImageWidht="18"
Foreground="#FFFFFF"
Background="#6495ED"
MouseHoverColor="#CCB9D3EE"
MouseClickColor="#B9D3EE"
CornerRadius="0"
Margin="0 0 10 0"
ToolTip="删除"
PathData="{StaticResource ResourceKey=Delete}"/>
<cc:ImageButton x:Name="btnClear"
Width="22"
Height="22"
ImageHeight="18"
ImageWidht="18"
Foreground="#FFFFFF"
Background="#6495ED"
MouseHoverColor="#CCB9D3EE"
MouseClickColor="#B9D3EE"
CornerRadius="0"
Margin="0 0 10 0"
ToolTip="清空"
PathData="{StaticResource ResourceKey=Clear}"/>
</StackPanel>
<!--子节点-->
<ItemsPresenter x:Name="ItemsHost"
Grid.ColumnSpan="4"
Grid.Column="1"
Grid.Row="1" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsExpanded" Value="false">
<Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed"/>
</Trigger>
<Trigger Property="HasItems" Value="false">
<Setter Property="Visibility" TargetName="Expander" Value="Hidden"/>
</Trigger>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Background" TargetName="Bd" Value="#6666CC"/>
<Setter Property="Foreground" Value="#FFFFFFFF"/>
<Setter TargetName="operation" Property="Visibility" Value="Visible"/>
</Trigger>
<!--被选中后失去焦点-->
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Background" TargetName="Bd" Value="#FF025BC7"/>
<Setter Property="Foreground" Value="#FFFFFFFF"/>
</MultiTrigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
<!-- 当前层最后一个元素不画下方垂直线 -->
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource LineConverter}}" Value="true">
<Setter TargetName="VerLine" Property="Height" Value="15"/>
<Setter TargetName="VerLine" Property="VerticalAlignment" Value="Top"/>
</DataTrigger>
<!-- Root第一个元素不显示上方垂直线 -->
<Trigger Property="TabIndex" Value="1">
<Setter TargetName="VerLine" Property="Margin" Value="0,12,1,0"/>
<Setter TargetName="VerLine" Property="Height" Value="Auto"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="VirtualizingStackPanel.IsVirtualizing" Value="true">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )