<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:XFEToolBox.WpfCore.Controls">
<!-- 基础按钮:工具只需声明 Button 即可获得工具箱外观。 -->
<Style x:Key="ToolBoxButtonStyle" TargetType="Button">
<Setter Property="Height" Value="36"/>
<Setter Property="MinWidth" Value="72"/>
<Setter Property="Padding" Value="16,0"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource MainColor}"/>
<Setter Property="BorderBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="controls:ButtonAssist.CornerRadius" Value="11"/>
<Setter Property="controls:ButtonAssist.HoverBackground" Value="{DynamicResource ToolControlHoverBrush}"/>
<Setter Property="controls:ButtonAssist.HoverForeground" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.HoverBorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/>
<Setter Property="controls:ButtonAssist.PressedBackground" Value="{DynamicResource ToolControlPressedBrush}"/>
<Setter Property="controls:ButtonAssist.PressedForeground" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.PressedBorderBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.DisabledBackground" Value="{DynamicResource ToolControlDisabledBrush}"/>
<Setter Property="controls:ButtonAssist.DisabledForeground" Value="{DynamicResource ToolTextDisabledBrush}"/>
<Setter Property="controls:ButtonAssist.DisabledBorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/>
<Setter Property="controls:ButtonAssist.HoverScale" Value="1.015"/>
<Setter Property="controls:ButtonAssist.PressedScale" Value="0.975"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="ButtonVisual" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform><ScaleTransform ScaleX="1" ScaleY="1"/></Grid.RenderTransform>
<Border x:Name="ButtonSurface" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.CornerRadius)}"/>
<ContentPresenter Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="True"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="controls:ButtonAssist.IsPrimary" Value="True">
<Setter Property="Background" Value="{DynamicResource MainColor}"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.HoverBackground" Value="#A8A8EC"/>
<Setter Property="controls:ButtonAssist.HoverForeground" Value="White"/>
<Setter Property="controls:ButtonAssist.HoverBorderBrush" Value="#C4C4F2"/>
<Setter Property="controls:ButtonAssist.PressedBackground" Value="#7F7FD2"/>
<Setter Property="controls:ButtonAssist.PressedForeground" Value="White"/>
<Setter Property="controls:ButtonAssist.PressedBorderBrush" Value="#7777CC"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ButtonSurface" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverBackground)}"/>
<Setter TargetName="ButtonSurface" Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverBorderBrush)}"/>
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverForeground)}"/>
<Setter TargetName="ButtonVisual" Property="RenderTransform"><Setter.Value>
<ScaleTransform ScaleX="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverScale)}"
ScaleY="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverScale)}"/>
</Setter.Value></Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="ButtonSurface" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedBackground)}"/>
<Setter TargetName="ButtonSurface" Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedBorderBrush)}"/>
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedForeground)}"/>
<Setter TargetName="ButtonVisual" Property="RenderTransform"><Setter.Value>
<ScaleTransform ScaleX="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedScale)}"
ScaleY="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedScale)}"/>
</Setter.Value></Setter>
</Trigger>
<!-- Primary buttons keep their light label during interaction even when a tool supplies no local style. -->
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:ButtonAssist.IsPrimary" Value="True"/>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="White"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:ButtonAssist.IsPrimary" Value="True"/>
<Condition Property="IsPressed" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="White"/>
</MultiTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="ButtonSurface" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.DisabledBackground)}"/>
<Setter TargetName="ButtonSurface" Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.DisabledBorderBrush)}"/>
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.DisabledForeground)}"/>
<Setter Property="Cursor" Value="Arrow"/><Setter Property="Opacity" Value="0.78"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" BasedOn="{StaticResource ToolBoxButtonStyle}"/>
<Style x:Key="ToolBoxToggleButtonStyle" TargetType="ToggleButton">
<Setter Property="Height" Value="36"/><Setter Property="MinWidth" Value="64"/><Setter Property="Padding" Value="14,0"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ToggleButton">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="10">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ToggleButton" BasedOn="{StaticResource ToolBoxToggleButtonStyle}"/>
<!-- 输入控件。自定义 TextEditor 继续复用同一组颜色资源。 -->
<Style x:Key="ToolBoxTextBoxStyle" TargetType="TextBox">
<Setter Property="MinHeight" Value="36"/><Setter Property="Padding" Value="11,7"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="CaretBrush" Value="{DynamicResource MainColor}"/><Setter Property="SelectionBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="FontSize" Value="11"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TextBox">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="10" SnapsToDevicePixels="True">
<ScrollViewer x:Name="PART_ContentHost" Focusable="False"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="Surface" Property="BorderThickness" Value="1.5"/></Trigger>
<Trigger Property="IsReadOnly" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlDisabledBrush}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="TextBox" BasedOn="{StaticResource ToolBoxTextBoxStyle}"/>
<Style x:Key="ToolBoxXamlCodeViewerStyle" TargetType="controls:XamlCodeViewer">
<Setter Property="MinHeight" Value="96"/>
<Setter Property="Padding" Value="14"/>
<Setter Property="Foreground" Value="#EEEEFA"/>
<Setter Property="Background" Value="#202033"/>
<Setter Property="BorderBrush" Value="#34344B"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CaretBrush" Value="#EEEEFA"/>
<Setter Property="SelectionBrush" Value="#6969BC"/>
<Setter Property="FontFamily" Value="Cascadia Mono, Consolas"/>
<Setter Property="FontSize" Value="11"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:XamlCodeViewer">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="11" SnapsToDevicePixels="True">
<ScrollViewer x:Name="PART_ContentHost"
HorizontalScrollBarVisibility="{TemplateBinding HorizontalScrollBarVisibility}"
VerticalScrollBarVisibility="{TemplateBinding VerticalScrollBarVisibility}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Surface" Property="BorderBrush" Value="#50506D"/>
</Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.55"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="controls:XamlCodeViewer" BasedOn="{StaticResource ToolBoxXamlCodeViewerStyle}"/>
<Style x:Key="ToolBoxPasswordBoxStyle" TargetType="PasswordBox">
<Setter Property="MinHeight" Value="36"/><Setter Property="Padding" Value="11,7"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="CaretBrush" Value="{DynamicResource MainColor}"/><Setter Property="SelectionBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="FontSize" Value="11"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="PasswordBox">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="10">
<ScrollViewer x:Name="PART_ContentHost"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="Surface" Property="BorderThickness" Value="1.5"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="PasswordBox" BasedOn="{StaticResource ToolBoxPasswordBoxStyle}"/>
<!-- 选择控件。 -->
<Style x:Key="ToolBoxCheckBoxStyle" TargetType="CheckBox">
<Setter Property="MinHeight" Value="22"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/>
<Setter Property="Cursor" Value="Hand"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="CheckBox">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="22"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border x:Name="Box" Width="18" Height="18" Background="{DynamicResource ToolControlBackgroundBrush}"
BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="6" VerticalAlignment="Center"/>
<Path x:Name="CheckMark" Width="10" Height="8" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 1,3.5 L 3.5,6 L 8,1" Stretch="Uniform" Stroke="White" StrokeThickness="1.8"
StrokeStartLineCap="Round" StrokeEndLineCap="Round" Visibility="Collapsed"/>
<Border x:Name="IndeterminateMark" Width="8" Height="2" HorizontalAlignment="Center"
VerticalAlignment="Center" Background="White" CornerRadius="1" Visibility="Collapsed"/>
<ContentPresenter Grid.Column="1" Margin="5,0,0,0" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Box" Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Box" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsChecked" Value="{x:Null}"><Setter TargetName="Box" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="IndeterminateMark" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsKeyboardFocused" Value="True"><Setter TargetName="Box" Property="BorderThickness" Value="2"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxGridCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource ToolBoxCheckBoxStyle}">
<Setter Property="Width" Value="22"/><Setter Property="Height" Value="22"/><Setter Property="MinHeight" Value="22"/>
<Setter Property="HorizontalAlignment" Value="Center"/><Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style TargetType="CheckBox" BasedOn="{StaticResource ToolBoxCheckBoxStyle}"/>
<Style x:Key="ToolBoxRadioButtonStyle" TargetType="RadioButton">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="10.5"/>
<Setter Property="Cursor" Value="Hand"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="RadioButton">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="20"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border x:Name="Ring" Width="16" Height="16" Background="White" BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="8"/>
<Ellipse x:Name="Dot" Width="8" Height="8" Fill="{DynamicResource MainColor}" Visibility="Collapsed"/>
<ContentPresenter Grid.Column="1" Margin="4,0,0,0" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Ring" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Ring" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="Dot" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="RadioButton" BasedOn="{StaticResource ToolBoxRadioButtonStyle}"/>
<Style x:Key="ToolBoxComboBoxItemStyle" TargetType="ComboBoxItem">
<Setter Property="Padding" Value="9,7"/><Setter Property="Margin" Value="0,1"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ComboBoxItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="Transparent" BorderThickness="1" CornerRadius="8">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="3"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border x:Name="SelectedMark" Width="3" Height="14" Background="Transparent" CornerRadius="2" VerticalAlignment="Center"/>
<ContentPresenter Grid.Column="1" Margin="8,0,2,0" VerticalAlignment="Center"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/><Setter TargetName="SelectedMark" Property="Background" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/><Setter Property="FontWeight" Value="SemiBold"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ComboBoxItem" BasedOn="{StaticResource ToolBoxComboBoxItemStyle}"/>
<Style x:Key="ToolBoxComboBoxStyle" TargetType="ComboBox">
<Setter Property="MinHeight" Value="36"/><Setter Property="Padding" Value="11,0,7,0"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="ItemContainerStyle" Value="{StaticResource ToolBoxComboBoxItemStyle}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ComboBox">
<Grid x:Name="Root">
<ToggleButton x:Name="Toggle" Style="{x:Null}" Focusable="False" ClickMode="Press"
IsChecked="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}">
<ToggleButton.Template><ControlTemplate TargetType="ToggleButton">
<Border x:Name="Surface" Background="{Binding Background, RelativeSource={RelativeSource AncestorType=ComboBox}}"
BorderBrush="{Binding BorderBrush, RelativeSource={RelativeSource AncestorType=ComboBox}}"
BorderThickness="{Binding BorderThickness, RelativeSource={RelativeSource AncestorType=ComboBox}}" CornerRadius="10">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="30"/></Grid.ColumnDefinitions>
<ContentPresenter Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType=ComboBox}}" VerticalAlignment="Center"
Content="{Binding SelectionBoxItem, RelativeSource={RelativeSource AncestorType=ComboBox}}"
ContentTemplate="{Binding SelectionBoxItemTemplate, RelativeSource={RelativeSource AncestorType=ComboBox}}"
ContentTemplateSelector="{Binding ItemTemplateSelector, RelativeSource={RelativeSource AncestorType=ComboBox}}"
ContentStringFormat="{Binding SelectionBoxItemStringFormat, RelativeSource={RelativeSource AncestorType=ComboBox}}"
TextElement.Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType=ComboBox}}"/>
<Path Grid.Column="1" Width="8" Height="5" Data="M 0,0 L 4,4 L 8,0 Z" Stretch="Fill"
Fill="{DynamicResource MainColor}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></ToggleButton.Template>
</ToggleButton>
<TextBox x:Name="PART_EditableTextBox" Style="{x:Null}" Margin="11,2,30,2" Background="Transparent"
BorderThickness="0" VerticalContentAlignment="Center" Visibility="Collapsed"/>
<Popup x:Name="PART_Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}"
AllowsTransparency="True" Focusable="False" PopupAnimation="Fade">
<Border MinWidth="{Binding ActualWidth, ElementName=Root}" Margin="0,5,0,0" Padding="5" Background="White"
BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="11">
<Border.Effect><DropShadowEffect Color="#4A4666" BlurRadius="18" ShadowDepth="4" Opacity="0.2"/></Border.Effect>
<ScrollViewer MaxHeight="240" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Contained"/>
</ScrollViewer>
</Border>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEditable" Value="True"><Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ComboBox" BasedOn="{StaticResource ToolBoxComboBoxStyle}"/>
<!-- 列表:默认轻量行,卡片列表作为可复用变体。资源管理器和控制台保留专用模板。 -->
<Style x:Key="ToolBoxListBoxStyle" TargetType="ListBox">
<Setter Property="Padding" Value="5"/><Setter Property="Background" Value="{DynamicResource ToolSurfaceBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/><Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
<Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"/><Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling"/>
<Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="controls:ControlAssist.CornerRadius" Value="12"/>
</Style>
<Style TargetType="ListBox" BasedOn="{StaticResource ToolBoxListBoxStyle}"/>
<Style x:Key="ToolBoxListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="MinHeight" Value="42"/><Setter Property="Padding" Value="13,8"/><Setter Property="Margin" Value="1,1,1,2"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="11">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="#5555A8"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxCardListBoxItemStyle" TargetType="ListBoxItem" BasedOn="{StaticResource ToolBoxListBoxItemStyle}">
<Setter Property="MinHeight" Value="52"/><Setter Property="Padding" Value="14,10"/><Setter Property="Margin" Value="1,0,1,7"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/>
</Style>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource ToolBoxListBoxItemStyle}"/>
<!-- ListView / GridView 同样采用全局默认样式,工具无需单独引用资源键。 -->
<Style x:Key="ToolBoxGridViewColumnHeaderStyle" TargetType="GridViewColumnHeader">
<Setter Property="Height" Value="44"/><Setter Property="Padding" Value="15,0"/>
<Setter Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="GridViewColumnHeader">
<Grid Background="Transparent">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
</Border>
<Thumb x:Name="PART_HeaderGripper" Width="8" HorizontalAlignment="Right" Background="Transparent" Cursor="SizeWE">
<Thumb.Template><ControlTemplate TargetType="Thumb">
<Grid Background="Transparent"><Border x:Name="Grip" Width="1" HorizontalAlignment="Right" Margin="0,10,1,10"
Background="{DynamicResource ToolControlBorderBrush}" Opacity="0.48"/></Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Grip" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Grip" Property="Opacity" Value="0.8"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Thumb.Template>
</Thumb>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="Role" Value="PaddingHeader"><Setter TargetName="PART_HeaderGripper" Property="Visibility" Value="Collapsed"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxListViewItemStyle" TargetType="ListViewItem">
<Setter Property="MinHeight" Value="46"/><Setter Property="Padding" Value="0"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/><Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListViewItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1"><Setter TargetName="Surface" Property="Background" Value="#FAFAFD"/></Trigger>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter Property="Foreground" Value="#5555A8"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxListViewStyle" TargetType="ListView">
<Setter Property="Padding" Value="0"/><Setter Property="Background" Value="{DynamicResource ToolSurfaceBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="10.5"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="AlternationCount" Value="2"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/><Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="True"/><Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"/>
<Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource ToolBoxListViewItemStyle}"/>
<Setter Property="controls:ControlAssist.CornerRadius" Value="12"/>
</Style>
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource ToolBoxGridViewColumnHeaderStyle}"/>
<Style TargetType="ListViewItem" BasedOn="{StaticResource ToolBoxListViewItemStyle}"/>
<Style TargetType="ListView" BasedOn="{StaticResource ToolBoxListViewStyle}"/>
<!-- DataGrid 单元格中的控件变体。内置列与模板列都复用这些样式。 -->
<Style x:Key="ToolBoxDataGridButtonStyle" TargetType="Button" BasedOn="{StaticResource ToolBoxButtonStyle}">
<Setter Property="Height" Value="32"/><Setter Property="MinWidth" Value="58"/><Setter Property="Padding" Value="12,0"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="controls:ButtonAssist.CornerRadius" Value="9"/>
</Style>
<Style x:Key="ToolBoxDataGridToggleButtonStyle" TargetType="ToggleButton" BasedOn="{StaticResource ToolBoxToggleButtonStyle}">
<Setter Property="Height" Value="32"/><Setter Property="MinWidth" Value="58"/><Setter Property="Padding" Value="12,0"/>
</Style>
<Style x:Key="ToolBoxDataGridTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource ToolBoxTextBoxStyle}">
<Setter Property="MinHeight" Value="32"/><Setter Property="Padding" Value="9,5"/><Setter Property="Margin" Value="6,4"/>
<Setter Property="FontSize" Value="10.5"/>
</Style>
<Style x:Key="ToolBoxDataGridEditingComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource ToolBoxComboBoxStyle}">
<Setter Property="MinHeight" Value="32"/><Setter Property="Padding" Value="9,0,6,0"/><Setter Property="Margin" Value="6,4"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="IsSynchronizedWithCurrentItem" Value="False"/>
</Style>
<Style x:Key="ToolBoxDataGridComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource ToolBoxDataGridEditingComboBoxStyle}">
<Setter Property="IsHitTestVisible" Value="False"/><Setter Property="Focusable" Value="False"/>
</Style>
<Style x:Key="ToolBoxDataGridCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource ToolBoxGridCheckBoxStyle}">
<Setter Property="IsHitTestVisible" Value="False"/><Setter Property="Focusable" Value="False"/>
</Style>
<Style x:Key="ToolBoxDataGridEditingCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource ToolBoxGridCheckBoxStyle}"/>
<Style x:Key="ToolBoxDataGridRadioButtonStyle" TargetType="RadioButton" BasedOn="{StaticResource ToolBoxRadioButtonStyle}">
<Setter Property="HorizontalAlignment" Value="Center"/><Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="ToolBoxDataGridTextElementStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="10.5"/>
<Setter Property="VerticalAlignment" Value="Center"/><Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
<!-- 数据表格。管理页仅保留语义别名,不再复制模板。 -->
<Style x:Key="ToolBoxDataGridColumnHeaderStyle" TargetType="DataGridColumnHeader">
<Setter Property="Height" Value="44"/><Setter Property="Padding" Value="16,0"/>
<Setter Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Arrow"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="DataGridColumnHeader">
<Grid Background="Transparent">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
<Path x:Name="SortIndicator" Grid.Column="1" Width="8" Height="5" Margin="8,0,0,0"
Data="M 0,5 L 4,1 L 8,5" Stretch="Fill" Stroke="{DynamicResource MainColor}"
StrokeThickness="1.4" StrokeStartLineCap="Round" StrokeEndLineCap="Round"
Visibility="Collapsed" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform><RotateTransform Angle="0"/></Path.RenderTransform>
</Path>
</Grid>
</Border>
<Thumb x:Name="PART_HeaderGripper" Width="8" HorizontalAlignment="Right" Background="Transparent" Cursor="SizeWE">
<Thumb.Template><ControlTemplate TargetType="Thumb">
<Grid Background="Transparent"><Border x:Name="Grip" Width="1" HorizontalAlignment="Right" Margin="0,10,1,10"
Background="{DynamicResource ToolControlBorderBrush}" Opacity="0.48"/></Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Grip" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Grip" Property="Opacity" Value="0.8"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Thumb.Template>
</Thumb>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="SortDirection" Value="Ascending"><Setter TargetName="SortIndicator" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="SortDirection" Value="Descending"><Setter TargetName="SortIndicator" Property="Visibility" Value="Visible"/><Setter TargetName="SortIndicator" Property="RenderTransform"><Setter.Value><RotateTransform Angle="180"/></Setter.Value></Setter></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxDataGridCenteredHeaderStyle" TargetType="DataGridColumnHeader" BasedOn="{StaticResource ToolBoxDataGridColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Center"/><Setter Property="Padding" Value="8,0"/>
</Style>
<Style x:Key="ToolBoxDataGridRightHeaderStyle" TargetType="DataGridColumnHeader" BasedOn="{StaticResource ToolBoxDataGridColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Right"/><Setter Property="Padding" Value="8,0,16,0"/>
</Style>
<Style x:Key="ToolBoxDataGridCellStyle" TargetType="DataGridCell">
<Setter Property="Padding" Value="16,0"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/>
<Setter Property="BorderThickness" Value="0,0,0,1"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="DataGridCell">
<Border x:Name="CellSurface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<Border.Resources>
<!-- 模板列直接放入的控件会就近取得这些隐式样式。 -->
<Style TargetType="Button" BasedOn="{StaticResource ToolBoxDataGridButtonStyle}"/>
<Style TargetType="ToggleButton" BasedOn="{StaticResource ToolBoxDataGridToggleButtonStyle}"/>
<Style TargetType="TextBox" BasedOn="{StaticResource ToolBoxDataGridTextBoxStyle}"/>
<Style TargetType="ComboBox" BasedOn="{StaticResource ToolBoxDataGridEditingComboBoxStyle}"/>
<Style TargetType="CheckBox" BasedOn="{StaticResource ToolBoxDataGridEditingCheckBoxStyle}"/>
<Style TargetType="RadioButton" BasedOn="{StaticResource ToolBoxDataGridRadioButtonStyle}"/>
</Border.Resources>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="CellSurface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
<Style.Triggers><Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="Transparent"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/></Trigger></Style.Triggers>
</Style>
<Style x:Key="ToolBoxDataGridRowStyle" TargetType="DataGridRow">
<Setter Property="MinHeight" Value="48"/><Setter Property="Background" Value="Transparent"/><Setter Property="BorderThickness" Value="0"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="DataGridRow">
<Border x:Name="RowSurface" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<Grid>
<Grid.RowDefinitions><RowDefinition Height="*"/><RowDefinition Height="Auto"/></Grid.RowDefinitions>
<DataGridCellsPresenter Grid.Row="0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<DataGridDetailsPresenter Grid.Row="1" Visibility="{TemplateBinding DetailsVisibility}"/>
</Grid>
</Border>
</ControlTemplate></Setter.Value></Setter>
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="1"><Setter Property="Background" Value="#FAFAFD"/></Trigger>
<Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/></Trigger>
</Style.Triggers>
</Style>
<Style x:Key="ToolBoxDataGridStyle" TargetType="DataGrid">
<Setter Property="Background" Value="{DynamicResource ToolSurfaceBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="GridLinesVisibility" Value="None"/><Setter Property="HeadersVisibility" Value="Column"/>
<Setter Property="AutoGenerateColumns" Value="False"/><Setter Property="CanUserAddRows" Value="False"/>
<Setter Property="CanUserDeleteRows" Value="False"/><Setter Property="CanUserResizeRows" Value="False"/>
<Setter Property="SelectionMode" Value="Single"/><Setter Property="SelectionUnit" Value="FullRow"/><Setter Property="AlternationCount" Value="2"/>
<Setter Property="CanUserReorderColumns" Value="False"/><Setter Property="CanUserSortColumns" Value="True"/>
<Setter Property="EnableRowVirtualization" Value="True"/><Setter Property="EnableColumnVirtualization" Value="True"/>
<Setter Property="ColumnHeaderStyle" Value="{StaticResource ToolBoxDataGridColumnHeaderStyle}"/>
<Setter Property="CellStyle" Value="{StaticResource ToolBoxDataGridCellStyle}"/>
<Setter Property="RowStyle" Value="{StaticResource ToolBoxDataGridRowStyle}"/>
<Setter Property="controls:DataGridAssist.ComboBoxElementStyle" Value="{StaticResource ToolBoxDataGridComboBoxStyle}"/>
<Setter Property="controls:DataGridAssist.ComboBoxEditingStyle" Value="{StaticResource ToolBoxDataGridEditingComboBoxStyle}"/>
<Setter Property="controls:DataGridAssist.CheckBoxElementStyle" Value="{StaticResource ToolBoxDataGridCheckBoxStyle}"/>
<Setter Property="controls:DataGridAssist.CheckBoxEditingStyle" Value="{StaticResource ToolBoxDataGridEditingCheckBoxStyle}"/>
<Setter Property="controls:DataGridAssist.TextElementStyle" Value="{StaticResource ToolBoxDataGridTextElementStyle}"/>
<Setter Property="controls:DataGridAssist.TextEditingStyle" Value="{StaticResource ToolBoxDataGridTextBoxStyle}"/>
<Setter Property="controls:DataGridAssist.UseUnifiedCellControls" Value="True"/>
<Setter Property="RowHeaderWidth" Value="0"/><Setter Property="HorizontalGridLinesBrush" Value="Transparent"/>
<Setter Property="VerticalGridLinesBrush" Value="Transparent"/><Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="controls:ControlAssist.CornerRadius" Value="12"/>
</Style>
<Style x:Key="ToolBoxDataGridPrimaryTextStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/><Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="VerticalAlignment" Value="Center"/><Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
<Style x:Key="ToolBoxDataGridSecondaryTextStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/><Setter Property="FontSize" Value="10"/>
<Setter Property="VerticalAlignment" Value="Center"/><Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
<Style x:Key="ToolBoxDataGridCenteredTextStyle" TargetType="TextBlock" BasedOn="{StaticResource ToolBoxDataGridSecondaryTextStyle}">
<Setter Property="HorizontalAlignment" Value="Center"/><Setter Property="TextAlignment" Value="Center"/>
</Style>
<Style x:Key="ToolBoxDataGridNumericTextStyle" TargetType="TextBlock" BasedOn="{StaticResource ToolBoxDataGridSecondaryTextStyle}">
<Setter Property="HorizontalAlignment" Value="Right"/><Setter Property="TextAlignment" Value="Right"/><Setter Property="FontFamily" Value="Cascadia Mono, Consolas"/>
</Style>
<Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource ToolBoxDataGridColumnHeaderStyle}"/>
<Style TargetType="DataGridCell" BasedOn="{StaticResource ToolBoxDataGridCellStyle}"/>
<Style TargetType="DataGridRow" BasedOn="{StaticResource ToolBoxDataGridRowStyle}"/>
<Style TargetType="DataGrid" BasedOn="{StaticResource ToolBoxDataGridStyle}"/>
<!-- 横向和纵向共用的统一滚动条。 -->
<Style x:Key="ToolBoxScrollBarThumbStyle" TargetType="Thumb">
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Thumb">
<Border x:Name="Surface" Margin="2" Background="{DynamicResource MainColor}" CornerRadius="5" Opacity="0.48"/>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Opacity" Value="0.7"/></Trigger>
<Trigger Property="IsDragging" Value="True"><Setter TargetName="Surface" Property="Opacity" Value="0.9"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<ControlTemplate x:Key="ToolBoxVerticalScrollBarTemplate" TargetType="ScrollBar">
<Grid>
<Border x:Name="TrackSurface" Background="{TemplateBinding Background}" CornerRadius="6"/>
<Track x:Name="PART_Track" Orientation="Vertical" IsDirectionReversed="True" Focusable="False">
<Track.DecreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Focusable="False" Opacity="0"/></Track.DecreaseRepeatButton>
<Track.Thumb><Thumb Style="{StaticResource ToolBoxScrollBarThumbStyle}"/></Track.Thumb>
<Track.IncreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Focusable="False" Opacity="0"/></Track.IncreaseRepeatButton>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="TrackSurface" Property="Background" Value="#E7E7F7"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="ToolBoxHorizontalScrollBarTemplate" TargetType="ScrollBar">
<Grid>
<Border x:Name="TrackSurface" Background="{TemplateBinding Background}" CornerRadius="6"/>
<Track x:Name="PART_Track" Orientation="Horizontal" IsDirectionReversed="False" Focusable="False">
<Track.DecreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Focusable="False" Opacity="0"/></Track.DecreaseRepeatButton>
<Track.Thumb><Thumb Style="{StaticResource ToolBoxScrollBarThumbStyle}"/></Track.Thumb>
<Track.IncreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Focusable="False" Opacity="0"/></Track.IncreaseRepeatButton>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="TrackSurface" Property="Background" Value="#E7E7F7"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="ToolBoxScrollBarStyle" TargetType="ScrollBar">
<Setter Property="Width" Value="12"/><Setter Property="MinWidth" Value="12"/><Setter Property="Height" Value="Auto"/><Setter Property="MinHeight" Value="0"/>
<Setter Property="Background" Value="#ECECFA"/><Setter Property="Margin" Value="1,3,1,3"/><Setter Property="IsTabStop" Value="False"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template" Value="{StaticResource ToolBoxVerticalScrollBarTemplate}"/>
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto"/><Setter Property="MinWidth" Value="0"/><Setter Property="Height" Value="12"/><Setter Property="MinHeight" Value="12"/><Setter Property="Margin" Value="3,1,3,1"/>
<Setter Property="Template" Value="{StaticResource ToolBoxHorizontalScrollBarTemplate}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="ScrollBar" BasedOn="{StaticResource ToolBoxScrollBarStyle}"/>
<Style x:Key="ToolBoxProgressBarStyle" TargetType="ProgressBar">
<Setter Property="Height" Value="7"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/>
<Setter Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ProgressBar">
<controls:RoundedClipBorder Background="{TemplateBinding Background}" CornerRadius="4">
<Grid><Border x:Name="PART_Indicator" HorizontalAlignment="Left" Background="{TemplateBinding Foreground}" CornerRadius="4"/>
<Border x:Name="IndeterminateIndicator" Background="{TemplateBinding Foreground}" CornerRadius="4" Opacity="0.65" Visibility="Collapsed"/></Grid>
</controls:RoundedClipBorder>
<ControlTemplate.Triggers>
<Trigger Property="IsIndeterminate" Value="True"><Setter TargetName="PART_Indicator" Property="Visibility" Value="Collapsed"/><Setter TargetName="IndeterminateIndicator" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ProgressBar" BasedOn="{StaticResource ToolBoxProgressBarStyle}"/>
<!-- 菜单和提示。代码编辑器只保留其特殊字号与间距。 -->
<Style x:Key="ToolBoxContextMenuStyle" TargetType="ContextMenu">
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderThickness" Value="0"/><Setter Property="Padding" Value="0"/><Setter Property="HasDropShadow" Value="False"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ContextMenu">
<Border Background="White" BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="12" Padding="6">
<Border.Effect><DropShadowEffect Color="#49496C" BlurRadius="20" ShadowDepth="5" Opacity="0.22"/></Border.Effect>
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/>
</Border>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ContextMenu" BasedOn="{StaticResource ToolBoxContextMenuStyle}"/>
<Style x:Key="ToolBoxMenuItemStyle" TargetType="MenuItem">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="Transparent"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="Height" Value="32"/><Setter Property="Cursor" Value="Hand"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="MenuItem">
<Grid>
<Border x:Name="Surface" Background="{TemplateBinding Background}" CornerRadius="8" Padding="10,0">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="16"/></Grid.ColumnDefinitions>
<ContentPresenter ContentSource="Header" VerticalAlignment="Center" RecognizesAccessKey="True"/>
<TextBlock x:Name="Arrow" Grid.Column="1" Text="›" FontSize="15" VerticalAlignment="Center" Visibility="Collapsed"/>
</Grid>
</Border>
<Popup x:Name="PART_Popup" Placement="Right" IsOpen="{Binding IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}" AllowsTransparency="True" Focusable="False">
<Border Margin="4,0,0,0" Padding="6" Background="White" BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="12">
<Border.Effect><DropShadowEffect Color="#49496C" BlurRadius="18" ShadowDepth="4" Opacity="0.2"/></Border.Effect>
<StackPanel IsItemsHost="True"/>
</Border>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="HasItems" Value="True"><Setter TargetName="Arrow" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.45"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="MenuItem" BasedOn="{StaticResource ToolBoxMenuItemStyle}"/>
<Style x:Key="ToolBoxSeparatorStyle" TargetType="Separator">
<Setter Property="Height" Value="1"/><Setter Property="Margin" Value="8,4"/><Setter Property="Background" Value="{DynamicResource ToolDividerBrush}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Separator"><Border Height="1" Background="{TemplateBinding Background}"/></ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="Separator" BasedOn="{StaticResource ToolBoxSeparatorStyle}"/>
<Style TargetType="ToolTip">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="9,6"/><Setter Property="FontSize" Value="10"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ToolTip">
<Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="8"><ContentPresenter/></Border>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="TabViewItemStyle" TargetType="TabItem">
<Setter Property="Padding" Value="15,10"/><Setter Property="MinHeight" Value="42"/>
<Setter Property="Margin" Value="0,0,5,0"/>
<Setter Property="Panel.ZIndex" Value="0"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TabItem">
<Grid Panel.ZIndex="2" SnapsToDevicePixels="True" UseLayoutRounding="True">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="11,11,0,0">
<ContentPresenter x:Name="HeaderContent" ContentSource="Header" Margin="0,0,5,0"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<!-- This overlay does not participate in the auto-size measurement. Its trailing edge is
deliberately inset so TabPanel/DPI clipping cannot remove the right side. -->
<Border x:Name="SelectedOutline" Margin="0,0,5,0"
BorderBrush="{DynamicResource MainColor}" BorderThickness="1,1,1,0"
CornerRadius="11,11,0,0" Visibility="Collapsed"
IsHitTestVisible="False" Panel.ZIndex="4"/>
<Border x:Name="ContentConnector" Height="2" Margin="1,0,6,0"
VerticalAlignment="Bottom" Background="Transparent" Visibility="Collapsed"
IsHitTestVisible="False" Panel.ZIndex="3"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Panel.ZIndex" Value="10"/>
<Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter TargetName="Surface" Property="BorderBrush" Value="Transparent"/>
<Setter TargetName="SelectedOutline" Property="Visibility" Value="Visible"/>
<Setter TargetName="ContentConnector" Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter TargetName="ContentConnector" Property="Visibility" Value="Visible"/>
<Setter Property="Foreground" Value="{DynamicResource MainColor}"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.45"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="controls:TabView">
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="18"/><Setter Property="TabStripPlacement" Value="Top"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource TabViewItemStyle}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="controls:TabView">
<Grid SnapsToDevicePixels="True">
<Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="*"/></Grid.RowDefinitions>
<ScrollViewer x:Name="HeaderScroller" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled"
CanContentScroll="False" PanningMode="HorizontalOnly" Focusable="False"
Margin="0,1,0,0" Panel.ZIndex="2">
<TabPanel IsItemsHost="True" Background="Transparent" KeyboardNavigation.TabIndex="1"/>
</ScrollViewer>
<Border x:Name="ContentFrame" Grid.Row="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"
CornerRadius="0,14,14,14" Margin="0,-1,0,0" Panel.ZIndex="1">
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>
</Grid>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="NavigationViewItemStyle" TargetType="TabItem">
<Setter Property="Padding" Value="14,11"/><Setter Property="Margin" Value="1,0,1,5"/>
<Setter Property="MinHeight" Value="42"/><Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TabItem">
<controls:UniformRoundedBorder x:Name="Surface" Background="{TemplateBinding Background}" CornerRadius="11">
<Grid>
<Border x:Name="SelectedMark" Width="3" Height="22" HorizontalAlignment="Left" VerticalAlignment="Center"
Background="Transparent" CornerRadius="2"/>
<ContentPresenter x:Name="HeaderContent" ContentSource="Header" Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="Center"/>
</Grid>
</controls:UniformRoundedBorder>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter TargetName="SelectedMark" Property="Background" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontWeight" Value="SemiBold"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.45"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="controls:NavigationView">
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/><Setter Property="TabStripPlacement" Value="Left"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource NavigationViewItemStyle}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="controls:NavigationView">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NavigationWidth, RelativeSource={RelativeSource TemplatedParent}}"/>
<ColumnDefinition Width="12"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- The clip and outline share exactly the same bounds and radius. Keeping the host two
pixels inside the layout prevents either outline edge from landing on a clipped boundary. -->
<Grid x:Name="NavigationFrameHost" Margin="2" SnapsToDevicePixels="True" UseLayoutRounding="True">
<controls:UniformRoundedBorder x:Name="NavigationClip" Background="{DynamicResource ToolSurfaceBrush}"
BorderThickness="0" CornerRadius="15" Padding="6">
<ScrollViewer x:Name="NavigationScroller" Background="Transparent" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"
CanContentScroll="True" PanningMode="VerticalOnly" Focusable="False">
<TabPanel IsItemsHost="True" Background="Transparent" KeyboardNavigation.TabIndex="1"/>
</ScrollViewer>
</controls:UniformRoundedBorder>
<controls:UniformRoundedBorder x:Name="NavigationFrame" BorderBrush="{DynamicResource ToolControlHoverBorderBrush}"
BorderThickness="1" CornerRadius="15" Background="Transparent"
RenderOptions.EdgeMode="Aliased" IsHitTestVisible="False" Panel.ZIndex="10"/>
</Grid>
<Border Grid.Column="2" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>
</Grid>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="TabControl"><Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="0"/></Style>
<Style TargetType="TabItem">
<Setter Property="Padding" Value="13,8"/><Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TabItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0,0,0,2" CornerRadius="8,8,0,0">
<ContentPresenter ContentSource="Header" HorizontalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
</ResourceDictionary>
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:XFEToolBox.WpfCore.Controls">
<!-- 基础按钮:工具只需声明 Button 即可获得工具箱外观。 -->
<Style x:Key="ToolBoxButtonStyle" TargetType="Button">
<Setter Property="Height" Value="36"/>
<Setter Property="MinWidth" Value="72"/>
<Setter Property="Padding" Value="16,0"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource MainColor}"/>
<Setter Property="BorderBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="controls:ButtonAssist.CornerRadius" Value="11"/>
<Setter Property="controls:ButtonAssist.HoverBackground" Value="{DynamicResource ToolControlHoverBrush}"/>
<Setter Property="controls:ButtonAssist.HoverForeground" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.HoverBorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/>
<Setter Property="controls:ButtonAssist.PressedBackground" Value="{DynamicResource ToolControlPressedBrush}"/>
<Setter Property="controls:ButtonAssist.PressedForeground" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.PressedBorderBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.DisabledBackground" Value="{DynamicResource ToolControlDisabledBrush}"/>
<Setter Property="controls:ButtonAssist.DisabledForeground" Value="{DynamicResource ToolTextDisabledBrush}"/>
<Setter Property="controls:ButtonAssist.DisabledBorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/>
<Setter Property="controls:ButtonAssist.HoverScale" Value="1.015"/>
<Setter Property="controls:ButtonAssist.PressedScale" Value="0.975"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid x:Name="ButtonVisual" RenderTransformOrigin="0.5,0.5">
<Grid.RenderTransform><ScaleTransform ScaleX="1" ScaleY="1"/></Grid.RenderTransform>
<Border x:Name="ButtonSurface" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.CornerRadius)}"/>
<ContentPresenter Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
RecognizesAccessKey="True"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="controls:ButtonAssist.IsPrimary" Value="True">
<Setter Property="Background" Value="{DynamicResource MainColor}"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="controls:ButtonAssist.HoverBackground" Value="#A8A8EC"/>
<Setter Property="controls:ButtonAssist.HoverForeground" Value="White"/>
<Setter Property="controls:ButtonAssist.HoverBorderBrush" Value="#C4C4F2"/>
<Setter Property="controls:ButtonAssist.PressedBackground" Value="#7F7FD2"/>
<Setter Property="controls:ButtonAssist.PressedForeground" Value="White"/>
<Setter Property="controls:ButtonAssist.PressedBorderBrush" Value="#7777CC"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ButtonSurface" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverBackground)}"/>
<Setter TargetName="ButtonSurface" Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverBorderBrush)}"/>
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverForeground)}"/>
<Setter TargetName="ButtonVisual" Property="RenderTransform"><Setter.Value>
<ScaleTransform ScaleX="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverScale)}"
ScaleY="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.HoverScale)}"/>
</Setter.Value></Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="ButtonSurface" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedBackground)}"/>
<Setter TargetName="ButtonSurface" Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedBorderBrush)}"/>
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedForeground)}"/>
<Setter TargetName="ButtonVisual" Property="RenderTransform"><Setter.Value>
<ScaleTransform ScaleX="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedScale)}"
ScaleY="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.PressedScale)}"/>
</Setter.Value></Setter>
</Trigger>
<!-- Primary buttons keep their light label during interaction even when a tool supplies no local style. -->
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:ButtonAssist.IsPrimary" Value="True"/>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="White"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="controls:ButtonAssist.IsPrimary" Value="True"/>
<Condition Property="IsPressed" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="White"/>
</MultiTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="ButtonSurface" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.DisabledBackground)}"/>
<Setter TargetName="ButtonSurface" Property="BorderBrush" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.DisabledBorderBrush)}"/>
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(controls:ButtonAssist.DisabledForeground)}"/>
<Setter Property="Cursor" Value="Arrow"/><Setter Property="Opacity" Value="0.78"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="Button" BasedOn="{StaticResource ToolBoxButtonStyle}"/>
<Style x:Key="ToolBoxToggleButtonStyle" TargetType="ToggleButton">
<Setter Property="Height" Value="36"/><Setter Property="MinWidth" Value="64"/><Setter Property="Padding" Value="14,0"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ToggleButton">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="10">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ToggleButton" BasedOn="{StaticResource ToolBoxToggleButtonStyle}"/>
<!-- 输入控件。自定义 TextEditor 继续复用同一组颜色资源。 -->
<Style x:Key="ToolBoxTextBoxStyle" TargetType="TextBox">
<Setter Property="MinHeight" Value="36"/><Setter Property="Padding" Value="11,7"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="CaretBrush" Value="{DynamicResource MainColor}"/><Setter Property="SelectionBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="FontSize" Value="11"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TextBox">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="10" SnapsToDevicePixels="True">
<ScrollViewer x:Name="PART_ContentHost" Focusable="False"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="Surface" Property="BorderThickness" Value="1.5"/></Trigger>
<Trigger Property="IsReadOnly" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlDisabledBrush}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="TextBox" BasedOn="{StaticResource ToolBoxTextBoxStyle}"/>
<Style x:Key="ToolBoxXamlCodeViewerStyle" TargetType="controls:XamlCodeViewer">
<Setter Property="MinHeight" Value="96"/>
<Setter Property="Padding" Value="14"/>
<Setter Property="Foreground" Value="#EEEEFA"/>
<Setter Property="Background" Value="#202033"/>
<Setter Property="BorderBrush" Value="#34344B"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CaretBrush" Value="#EEEEFA"/>
<Setter Property="SelectionBrush" Value="#6969BC"/>
<Setter Property="FontFamily" Value="Cascadia Mono, Consolas"/>
<Setter Property="FontSize" Value="11"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="controls:XamlCodeViewer">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="11" SnapsToDevicePixels="True">
<ScrollViewer x:Name="PART_ContentHost"
HorizontalScrollBarVisibility="{TemplateBinding HorizontalScrollBarVisibility}"
VerticalScrollBarVisibility="{TemplateBinding VerticalScrollBarVisibility}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Surface" Property="BorderBrush" Value="#50506D"/>
</Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.55"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="controls:XamlCodeViewer" BasedOn="{StaticResource ToolBoxXamlCodeViewerStyle}"/>
<Style x:Key="ToolBoxPasswordBoxStyle" TargetType="PasswordBox">
<Setter Property="MinHeight" Value="36"/><Setter Property="Padding" Value="11,7"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="CaretBrush" Value="{DynamicResource MainColor}"/><Setter Property="SelectionBrush" Value="{DynamicResource MainColor}"/>
<Setter Property="FontSize" Value="11"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="PasswordBox">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="10">
<ScrollViewer x:Name="PART_ContentHost"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="Surface" Property="BorderThickness" Value="1.5"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="PasswordBox" BasedOn="{StaticResource ToolBoxPasswordBoxStyle}"/>
<!-- 选择控件。 -->
<Style x:Key="ToolBoxCheckBoxStyle" TargetType="CheckBox">
<Setter Property="MinHeight" Value="22"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/>
<Setter Property="Cursor" Value="Hand"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="CheckBox">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="22"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border x:Name="Box" Width="18" Height="18" Background="{DynamicResource ToolControlBackgroundBrush}"
BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="6" VerticalAlignment="Center"/>
<Path x:Name="CheckMark" Width="10" Height="8" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 1,3.5 L 3.5,6 L 8,1" Stretch="Uniform" Stroke="White" StrokeThickness="1.8"
StrokeStartLineCap="Round" StrokeEndLineCap="Round" Visibility="Collapsed"/>
<Border x:Name="IndeterminateMark" Width="8" Height="2" HorizontalAlignment="Center"
VerticalAlignment="Center" Background="White" CornerRadius="1" Visibility="Collapsed"/>
<ContentPresenter Grid.Column="1" Margin="5,0,0,0" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Box" Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Box" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsChecked" Value="{x:Null}"><Setter TargetName="Box" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="IndeterminateMark" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsKeyboardFocused" Value="True"><Setter TargetName="Box" Property="BorderThickness" Value="2"/><Setter TargetName="Box" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxGridCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource ToolBoxCheckBoxStyle}">
<Setter Property="Width" Value="22"/><Setter Property="Height" Value="22"/><Setter Property="MinHeight" Value="22"/>
<Setter Property="HorizontalAlignment" Value="Center"/><Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style TargetType="CheckBox" BasedOn="{StaticResource ToolBoxCheckBoxStyle}"/>
<Style x:Key="ToolBoxRadioButtonStyle" TargetType="RadioButton">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="10.5"/>
<Setter Property="Cursor" Value="Hand"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="RadioButton">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="20"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border x:Name="Ring" Width="16" Height="16" Background="White" BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="8"/>
<Ellipse x:Name="Dot" Width="8" Height="8" Fill="{DynamicResource MainColor}" Visibility="Collapsed"/>
<ContentPresenter Grid.Column="1" Margin="4,0,0,0" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Ring" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Ring" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter TargetName="Dot" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="RadioButton" BasedOn="{StaticResource ToolBoxRadioButtonStyle}"/>
<Style x:Key="ToolBoxComboBoxItemStyle" TargetType="ComboBoxItem">
<Setter Property="Padding" Value="9,7"/><Setter Property="Margin" Value="0,1"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ComboBoxItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="Transparent" BorderThickness="1" CornerRadius="8">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="3"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
<Border x:Name="SelectedMark" Width="3" Height="14" Background="Transparent" CornerRadius="2" VerticalAlignment="Center"/>
<ContentPresenter Grid.Column="1" Margin="8,0,2,0" VerticalAlignment="Center"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/><Setter TargetName="SelectedMark" Property="Background" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/><Setter Property="FontWeight" Value="SemiBold"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ComboBoxItem" BasedOn="{StaticResource ToolBoxComboBoxItemStyle}"/>
<Style x:Key="ToolBoxComboBoxStyle" TargetType="ComboBox">
<Setter Property="MinHeight" Value="36"/><Setter Property="Padding" Value="11,0,7,0"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="ItemContainerStyle" Value="{StaticResource ToolBoxComboBoxItemStyle}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ComboBox">
<Grid x:Name="Root">
<ToggleButton x:Name="Toggle" Style="{x:Null}" Focusable="False" ClickMode="Press"
IsChecked="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}">
<ToggleButton.Template><ControlTemplate TargetType="ToggleButton">
<Border x:Name="Surface" Background="{Binding Background, RelativeSource={RelativeSource AncestorType=ComboBox}}"
BorderBrush="{Binding BorderBrush, RelativeSource={RelativeSource AncestorType=ComboBox}}"
BorderThickness="{Binding BorderThickness, RelativeSource={RelativeSource AncestorType=ComboBox}}" CornerRadius="10">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="30"/></Grid.ColumnDefinitions>
<ContentPresenter Margin="{Binding Padding, RelativeSource={RelativeSource AncestorType=ComboBox}}" VerticalAlignment="Center"
Content="{Binding SelectionBoxItem, RelativeSource={RelativeSource AncestorType=ComboBox}}"
ContentTemplate="{Binding SelectionBoxItemTemplate, RelativeSource={RelativeSource AncestorType=ComboBox}}"
ContentTemplateSelector="{Binding ItemTemplateSelector, RelativeSource={RelativeSource AncestorType=ComboBox}}"
ContentStringFormat="{Binding SelectionBoxItemStringFormat, RelativeSource={RelativeSource AncestorType=ComboBox}}"
TextElement.Foreground="{Binding Foreground, RelativeSource={RelativeSource AncestorType=ComboBox}}"/>
<Path Grid.Column="1" Width="8" Height="5" Data="M 0,0 L 4,4 L 8,0 Z" Stretch="Fill"
Fill="{DynamicResource MainColor}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsChecked" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></ToggleButton.Template>
</ToggleButton>
<TextBox x:Name="PART_EditableTextBox" Style="{x:Null}" Margin="11,2,30,2" Background="Transparent"
BorderThickness="0" VerticalContentAlignment="Center" Visibility="Collapsed"/>
<Popup x:Name="PART_Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}"
AllowsTransparency="True" Focusable="False" PopupAnimation="Fade">
<Border MinWidth="{Binding ActualWidth, ElementName=Root}" Margin="0,5,0,0" Padding="5" Background="White"
BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="11">
<Border.Effect><DropShadowEffect Color="#4A4666" BlurRadius="18" ShadowDepth="4" Opacity="0.2"/></Border.Effect>
<ScrollViewer MaxHeight="240" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Contained"/>
</ScrollViewer>
</Border>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEditable" Value="True"><Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ComboBox" BasedOn="{StaticResource ToolBoxComboBoxStyle}"/>
<!-- 列表:默认轻量行,卡片列表作为可复用变体。资源管理器和控制台保留专用模板。 -->
<Style x:Key="ToolBoxListBoxStyle" TargetType="ListBox">
<Setter Property="Padding" Value="5"/><Setter Property="Background" Value="{DynamicResource ToolSurfaceBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/><Setter Property="ScrollViewer.CanContentScroll" Value="True"/>
<Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"/><Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling"/>
<Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="controls:ControlAssist.CornerRadius" Value="12"/>
</Style>
<Style TargetType="ListBox" BasedOn="{StaticResource ToolBoxListBoxStyle}"/>
<Style x:Key="ToolBoxListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="MinHeight" Value="42"/><Setter Property="Padding" Value="13,8"/><Setter Property="Margin" Value="1,1,1,2"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="11">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="#5555A8"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxCardListBoxItemStyle" TargetType="ListBoxItem" BasedOn="{StaticResource ToolBoxListBoxItemStyle}">
<Setter Property="MinHeight" Value="52"/><Setter Property="Padding" Value="14,10"/><Setter Property="Margin" Value="1,0,1,7"/>
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/>
</Style>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource ToolBoxListBoxItemStyle}"/>
<!-- ListView / GridView 同样采用全局默认样式,工具无需单独引用资源键。 -->
<Style x:Key="ToolBoxGridViewColumnHeaderStyle" TargetType="GridViewColumnHeader">
<Setter Property="Height" Value="44"/><Setter Property="Padding" Value="15,0"/>
<Setter Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="GridViewColumnHeader">
<Grid Background="Transparent">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
</Border>
<Thumb x:Name="PART_HeaderGripper" Width="8" HorizontalAlignment="Right" Background="Transparent" Cursor="SizeWE">
<Thumb.Template><ControlTemplate TargetType="Thumb">
<Grid Background="Transparent"><Border x:Name="Grip" Width="1" HorizontalAlignment="Right" Margin="0,10,1,10"
Background="{DynamicResource ToolControlBorderBrush}" Opacity="0.48"/></Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Grip" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Grip" Property="Opacity" Value="0.8"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Thumb.Template>
</Thumb>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="Role" Value="PaddingHeader"><Setter TargetName="PART_HeaderGripper" Property="Visibility" Value="Collapsed"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxListViewItemStyle" TargetType="ListViewItem">
<Setter Property="MinHeight" Value="46"/><Setter Property="Padding" Value="0"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/><Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListViewItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="1"><Setter TargetName="Surface" Property="Background" Value="#FAFAFD"/></Trigger>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/><Setter Property="Foreground" Value="#5555A8"/></Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxListViewStyle" TargetType="ListView">
<Setter Property="Padding" Value="0"/><Setter Property="Background" Value="{DynamicResource ToolSurfaceBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="10.5"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="AlternationCount" Value="2"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/><Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="True"/><Setter Property="VirtualizingPanel.IsVirtualizing" Value="True"/>
<Setter Property="VirtualizingPanel.VirtualizationMode" Value="Recycling"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource ToolBoxListViewItemStyle}"/>
<Setter Property="controls:ControlAssist.CornerRadius" Value="12"/>
</Style>
<Style TargetType="GridViewColumnHeader" BasedOn="{StaticResource ToolBoxGridViewColumnHeaderStyle}"/>
<Style TargetType="ListViewItem" BasedOn="{StaticResource ToolBoxListViewItemStyle}"/>
<Style TargetType="ListView" BasedOn="{StaticResource ToolBoxListViewStyle}"/>
<!-- DataGrid 单元格中的控件变体。内置列与模板列都复用这些样式。 -->
<Style x:Key="ToolBoxDataGridButtonStyle" TargetType="Button" BasedOn="{StaticResource ToolBoxButtonStyle}">
<Setter Property="Height" Value="32"/><Setter Property="MinWidth" Value="58"/><Setter Property="Padding" Value="12,0"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="controls:ButtonAssist.CornerRadius" Value="9"/>
</Style>
<Style x:Key="ToolBoxDataGridToggleButtonStyle" TargetType="ToggleButton" BasedOn="{StaticResource ToolBoxToggleButtonStyle}">
<Setter Property="Height" Value="32"/><Setter Property="MinWidth" Value="58"/><Setter Property="Padding" Value="12,0"/>
</Style>
<Style x:Key="ToolBoxDataGridTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource ToolBoxTextBoxStyle}">
<Setter Property="MinHeight" Value="32"/><Setter Property="Padding" Value="9,5"/><Setter Property="Margin" Value="6,4"/>
<Setter Property="FontSize" Value="10.5"/>
</Style>
<Style x:Key="ToolBoxDataGridEditingComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource ToolBoxComboBoxStyle}">
<Setter Property="MinHeight" Value="32"/><Setter Property="Padding" Value="9,0,6,0"/><Setter Property="Margin" Value="6,4"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="IsSynchronizedWithCurrentItem" Value="False"/>
</Style>
<Style x:Key="ToolBoxDataGridComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource ToolBoxDataGridEditingComboBoxStyle}">
<Setter Property="IsHitTestVisible" Value="False"/><Setter Property="Focusable" Value="False"/>
</Style>
<Style x:Key="ToolBoxDataGridCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource ToolBoxGridCheckBoxStyle}">
<Setter Property="IsHitTestVisible" Value="False"/><Setter Property="Focusable" Value="False"/>
</Style>
<Style x:Key="ToolBoxDataGridEditingCheckBoxStyle" TargetType="CheckBox" BasedOn="{StaticResource ToolBoxGridCheckBoxStyle}"/>
<Style x:Key="ToolBoxDataGridRadioButtonStyle" TargetType="RadioButton" BasedOn="{StaticResource ToolBoxRadioButtonStyle}">
<Setter Property="HorizontalAlignment" Value="Center"/><Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="ToolBoxDataGridTextElementStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="10.5"/>
<Setter Property="VerticalAlignment" Value="Center"/><Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
<!-- 数据表格。管理页仅保留语义别名,不再复制模板。 -->
<Style x:Key="ToolBoxDataGridColumnHeaderStyle" TargetType="DataGridColumnHeader">
<Setter Property="Height" Value="44"/><Setter Property="Padding" Value="16,0"/>
<Setter Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/><Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Arrow"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="DataGridColumnHeader">
<Grid Background="Transparent">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="Auto"/></Grid.ColumnDefinitions>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/>
<Path x:Name="SortIndicator" Grid.Column="1" Width="8" Height="5" Margin="8,0,0,0"
Data="M 0,5 L 4,1 L 8,5" Stretch="Fill" Stroke="{DynamicResource MainColor}"
StrokeThickness="1.4" StrokeStartLineCap="Round" StrokeEndLineCap="Round"
Visibility="Collapsed" RenderTransformOrigin="0.5,0.5">
<Path.RenderTransform><RotateTransform Angle="0"/></Path.RenderTransform>
</Path>
</Grid>
</Border>
<Thumb x:Name="PART_HeaderGripper" Width="8" HorizontalAlignment="Right" Background="Transparent" Cursor="SizeWE">
<Thumb.Template><ControlTemplate TargetType="Thumb">
<Grid Background="Transparent"><Border x:Name="Grip" Width="1" HorizontalAlignment="Right" Margin="0,10,1,10"
Background="{DynamicResource ToolControlBorderBrush}" Opacity="0.48"/></Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Grip" Property="Background" Value="{DynamicResource MainColor}"/><Setter TargetName="Grip" Property="Opacity" Value="0.8"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Thumb.Template>
</Thumb>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="SortDirection" Value="Ascending"><Setter TargetName="SortIndicator" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="SortDirection" Value="Descending"><Setter TargetName="SortIndicator" Property="Visibility" Value="Visible"/><Setter TargetName="SortIndicator" Property="RenderTransform"><Setter.Value><RotateTransform Angle="180"/></Setter.Value></Setter></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="ToolBoxDataGridCenteredHeaderStyle" TargetType="DataGridColumnHeader" BasedOn="{StaticResource ToolBoxDataGridColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Center"/><Setter Property="Padding" Value="8,0"/>
</Style>
<Style x:Key="ToolBoxDataGridRightHeaderStyle" TargetType="DataGridColumnHeader" BasedOn="{StaticResource ToolBoxDataGridColumnHeaderStyle}">
<Setter Property="HorizontalContentAlignment" Value="Right"/><Setter Property="Padding" Value="8,0,16,0"/>
</Style>
<Style x:Key="ToolBoxDataGridCellStyle" TargetType="DataGridCell">
<Setter Property="Padding" Value="16,0"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="BorderBrush" Value="{DynamicResource ToolDividerBrush}"/>
<Setter Property="BorderThickness" Value="0,0,0,1"/><Setter Property="HorizontalContentAlignment" Value="Stretch"/><Setter Property="VerticalContentAlignment" Value="Center"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="DataGridCell">
<Border x:Name="CellSurface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<Border.Resources>
<!-- 模板列直接放入的控件会就近取得这些隐式样式。 -->
<Style TargetType="Button" BasedOn="{StaticResource ToolBoxDataGridButtonStyle}"/>
<Style TargetType="ToggleButton" BasedOn="{StaticResource ToolBoxDataGridToggleButtonStyle}"/>
<Style TargetType="TextBox" BasedOn="{StaticResource ToolBoxDataGridTextBoxStyle}"/>
<Style TargetType="ComboBox" BasedOn="{StaticResource ToolBoxDataGridEditingComboBoxStyle}"/>
<Style TargetType="CheckBox" BasedOn="{StaticResource ToolBoxDataGridEditingCheckBoxStyle}"/>
<Style TargetType="RadioButton" BasedOn="{StaticResource ToolBoxDataGridRadioButtonStyle}"/>
</Border.Resources>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True"><Setter TargetName="CellSurface" Property="BorderBrush" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.55"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
<Style.Triggers><Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="Transparent"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/></Trigger></Style.Triggers>
</Style>
<Style x:Key="ToolBoxDataGridRowStyle" TargetType="DataGridRow">
<Setter Property="MinHeight" Value="48"/><Setter Property="Background" Value="Transparent"/><Setter Property="BorderThickness" Value="0"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="DataGridRow">
<Border x:Name="RowSurface" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<Grid>
<Grid.RowDefinitions><RowDefinition Height="*"/><RowDefinition Height="Auto"/></Grid.RowDefinitions>
<DataGridCellsPresenter Grid.Row="0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<DataGridDetailsPresenter Grid.Row="1" Visibility="{TemplateBinding DetailsVisibility}"/>
</Grid>
</Border>
</ControlTemplate></Setter.Value></Setter>
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="1"><Setter Property="Background" Value="#FAFAFD"/></Trigger>
<Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="{DynamicResource ToolAccentSelectedBrush}"/></Trigger>
</Style.Triggers>
</Style>
<Style x:Key="ToolBoxDataGridStyle" TargetType="DataGrid">
<Setter Property="Background" Value="{DynamicResource ToolSurfaceBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="GridLinesVisibility" Value="None"/><Setter Property="HeadersVisibility" Value="Column"/>
<Setter Property="AutoGenerateColumns" Value="False"/><Setter Property="CanUserAddRows" Value="False"/>
<Setter Property="CanUserDeleteRows" Value="False"/><Setter Property="CanUserResizeRows" Value="False"/>
<Setter Property="SelectionMode" Value="Single"/><Setter Property="SelectionUnit" Value="FullRow"/><Setter Property="AlternationCount" Value="2"/>
<Setter Property="CanUserReorderColumns" Value="False"/><Setter Property="CanUserSortColumns" Value="True"/>
<Setter Property="EnableRowVirtualization" Value="True"/><Setter Property="EnableColumnVirtualization" Value="True"/>
<Setter Property="ColumnHeaderStyle" Value="{StaticResource ToolBoxDataGridColumnHeaderStyle}"/>
<Setter Property="CellStyle" Value="{StaticResource ToolBoxDataGridCellStyle}"/>
<Setter Property="RowStyle" Value="{StaticResource ToolBoxDataGridRowStyle}"/>
<Setter Property="controls:DataGridAssist.ComboBoxElementStyle" Value="{StaticResource ToolBoxDataGridComboBoxStyle}"/>
<Setter Property="controls:DataGridAssist.ComboBoxEditingStyle" Value="{StaticResource ToolBoxDataGridEditingComboBoxStyle}"/>
<Setter Property="controls:DataGridAssist.CheckBoxElementStyle" Value="{StaticResource ToolBoxDataGridCheckBoxStyle}"/>
<Setter Property="controls:DataGridAssist.CheckBoxEditingStyle" Value="{StaticResource ToolBoxDataGridEditingCheckBoxStyle}"/>
<Setter Property="controls:DataGridAssist.TextElementStyle" Value="{StaticResource ToolBoxDataGridTextElementStyle}"/>
<Setter Property="controls:DataGridAssist.TextEditingStyle" Value="{StaticResource ToolBoxDataGridTextBoxStyle}"/>
<Setter Property="controls:DataGridAssist.UseUnifiedCellControls" Value="True"/>
<Setter Property="RowHeaderWidth" Value="0"/><Setter Property="HorizontalGridLinesBrush" Value="Transparent"/>
<Setter Property="VerticalGridLinesBrush" Value="Transparent"/><Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="controls:ControlAssist.CornerRadius" Value="12"/>
</Style>
<Style x:Key="ToolBoxDataGridPrimaryTextStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontSize" Value="11"/><Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="VerticalAlignment" Value="Center"/><Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
<Style x:Key="ToolBoxDataGridSecondaryTextStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/><Setter Property="FontSize" Value="10"/>
<Setter Property="VerticalAlignment" Value="Center"/><Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
<Style x:Key="ToolBoxDataGridCenteredTextStyle" TargetType="TextBlock" BasedOn="{StaticResource ToolBoxDataGridSecondaryTextStyle}">
<Setter Property="HorizontalAlignment" Value="Center"/><Setter Property="TextAlignment" Value="Center"/>
</Style>
<Style x:Key="ToolBoxDataGridNumericTextStyle" TargetType="TextBlock" BasedOn="{StaticResource ToolBoxDataGridSecondaryTextStyle}">
<Setter Property="HorizontalAlignment" Value="Right"/><Setter Property="TextAlignment" Value="Right"/><Setter Property="FontFamily" Value="Cascadia Mono, Consolas"/>
</Style>
<Style TargetType="DataGridColumnHeader" BasedOn="{StaticResource ToolBoxDataGridColumnHeaderStyle}"/>
<Style TargetType="DataGridCell" BasedOn="{StaticResource ToolBoxDataGridCellStyle}"/>
<Style TargetType="DataGridRow" BasedOn="{StaticResource ToolBoxDataGridRowStyle}"/>
<Style TargetType="DataGrid" BasedOn="{StaticResource ToolBoxDataGridStyle}"/>
<!-- 横向和纵向共用的统一滚动条。 -->
<Style x:Key="ToolBoxScrollBarThumbStyle" TargetType="Thumb">
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Thumb">
<Border x:Name="Surface" Margin="2" Background="{DynamicResource MainColor}" CornerRadius="5" Opacity="0.48"/>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Opacity" Value="0.7"/></Trigger>
<Trigger Property="IsDragging" Value="True"><Setter TargetName="Surface" Property="Opacity" Value="0.9"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<ControlTemplate x:Key="ToolBoxVerticalScrollBarTemplate" TargetType="ScrollBar">
<Grid>
<Border x:Name="TrackSurface" Background="{TemplateBinding Background}" CornerRadius="6"/>
<Track x:Name="PART_Track" Orientation="Vertical" IsDirectionReversed="True" Focusable="False">
<Track.DecreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Focusable="False" Opacity="0"/></Track.DecreaseRepeatButton>
<Track.Thumb><Thumb Style="{StaticResource ToolBoxScrollBarThumbStyle}"/></Track.Thumb>
<Track.IncreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Focusable="False" Opacity="0"/></Track.IncreaseRepeatButton>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="TrackSurface" Property="Background" Value="#E7E7F7"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="ToolBoxHorizontalScrollBarTemplate" TargetType="ScrollBar">
<Grid>
<Border x:Name="TrackSurface" Background="{TemplateBinding Background}" CornerRadius="6"/>
<Track x:Name="PART_Track" Orientation="Horizontal" IsDirectionReversed="False" Focusable="False">
<Track.DecreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Focusable="False" Opacity="0"/></Track.DecreaseRepeatButton>
<Track.Thumb><Thumb Style="{StaticResource ToolBoxScrollBarThumbStyle}"/></Track.Thumb>
<Track.IncreaseRepeatButton><RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Focusable="False" Opacity="0"/></Track.IncreaseRepeatButton>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="TrackSurface" Property="Background" Value="#E7E7F7"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="ToolBoxScrollBarStyle" TargetType="ScrollBar">
<Setter Property="Width" Value="12"/><Setter Property="MinWidth" Value="12"/><Setter Property="Height" Value="Auto"/><Setter Property="MinHeight" Value="0"/>
<Setter Property="Background" Value="#ECECFA"/><Setter Property="Margin" Value="1,3,1,3"/><Setter Property="IsTabStop" Value="False"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template" Value="{StaticResource ToolBoxVerticalScrollBarTemplate}"/>
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto"/><Setter Property="MinWidth" Value="0"/><Setter Property="Height" Value="12"/><Setter Property="MinHeight" Value="12"/><Setter Property="Margin" Value="3,1,3,1"/>
<Setter Property="Template" Value="{StaticResource ToolBoxHorizontalScrollBarTemplate}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="ScrollBar" BasedOn="{StaticResource ToolBoxScrollBarStyle}"/>
<Style x:Key="ToolBoxProgressBarStyle" TargetType="ProgressBar">
<Setter Property="Height" Value="7"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/>
<Setter Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ProgressBar">
<controls:RoundedClipBorder Background="{TemplateBinding Background}" CornerRadius="4">
<Grid><Border x:Name="PART_Indicator" HorizontalAlignment="Left" Background="{TemplateBinding Foreground}" CornerRadius="4"/>
<Border x:Name="IndeterminateIndicator" Background="{TemplateBinding Foreground}" CornerRadius="4" Opacity="0.65" Visibility="Collapsed"/></Grid>
</controls:RoundedClipBorder>
<ControlTemplate.Triggers>
<Trigger Property="IsIndeterminate" Value="True"><Setter TargetName="PART_Indicator" Property="Visibility" Value="Collapsed"/><Setter TargetName="IndeterminateIndicator" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.5"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ProgressBar" BasedOn="{StaticResource ToolBoxProgressBarStyle}"/>
<!-- 菜单和提示。代码编辑器只保留其特殊字号与间距。 -->
<Style x:Key="ToolBoxContextMenuStyle" TargetType="ContextMenu">
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderThickness" Value="0"/><Setter Property="Padding" Value="0"/><Setter Property="HasDropShadow" Value="False"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ContextMenu">
<Border Background="White" BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="12" Padding="6">
<Border.Effect><DropShadowEffect Color="#49496C" BlurRadius="20" ShadowDepth="5" Opacity="0.22"/></Border.Effect>
<StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/>
</Border>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="ContextMenu" BasedOn="{StaticResource ToolBoxContextMenuStyle}"/>
<Style x:Key="ToolBoxMenuItemStyle" TargetType="MenuItem">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="Transparent"/>
<Setter Property="FontSize" Value="10.5"/><Setter Property="Height" Value="32"/><Setter Property="Cursor" Value="Hand"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="MenuItem">
<Grid>
<Border x:Name="Surface" Background="{TemplateBinding Background}" CornerRadius="8" Padding="10,0">
<Grid><Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="16"/></Grid.ColumnDefinitions>
<ContentPresenter ContentSource="Header" VerticalAlignment="Center" RecognizesAccessKey="True"/>
<TextBlock x:Name="Arrow" Grid.Column="1" Text="›" FontSize="15" VerticalAlignment="Center" Visibility="Collapsed"/>
</Grid>
</Border>
<Popup x:Name="PART_Popup" Placement="Right" IsOpen="{Binding IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}" AllowsTransparency="True" Focusable="False">
<Border Margin="4,0,0,0" Padding="6" Background="White" BorderBrush="{DynamicResource ToolControlBorderBrush}" BorderThickness="1" CornerRadius="12">
<Border.Effect><DropShadowEffect Color="#49496C" BlurRadius="18" ShadowDepth="4" Opacity="0.2"/></Border.Effect>
<StackPanel IsItemsHost="True"/>
</Border>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/><Setter Property="Foreground" Value="{DynamicResource MainColor}"/></Trigger>
<Trigger Property="HasItems" Value="True"><Setter TargetName="Arrow" Property="Visibility" Value="Visible"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.45"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="MenuItem" BasedOn="{StaticResource ToolBoxMenuItemStyle}"/>
<Style x:Key="ToolBoxSeparatorStyle" TargetType="Separator">
<Setter Property="Height" Value="1"/><Setter Property="Margin" Value="8,4"/><Setter Property="Background" Value="{DynamicResource ToolDividerBrush}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="Separator"><Border Height="1" Background="{TemplateBinding Background}"/></ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="Separator" BasedOn="{StaticResource ToolBoxSeparatorStyle}"/>
<Style TargetType="ToolTip">
<Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="9,6"/><Setter Property="FontSize" Value="10"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ToolTip">
<Border Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="8"><ContentPresenter/></Border>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="TabViewItemStyle" TargetType="TabItem">
<Setter Property="Padding" Value="15,10"/><Setter Property="MinHeight" Value="42"/>
<Setter Property="Margin" Value="0,0,5,0"/>
<Setter Property="Panel.ZIndex" Value="0"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TabItem">
<Grid Panel.ZIndex="2" SnapsToDevicePixels="True" UseLayoutRounding="True">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="11,11,0,0">
<ContentPresenter x:Name="HeaderContent" ContentSource="Header" Margin="0,0,5,0"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<!-- This overlay does not participate in the auto-size measurement. Its trailing edge is
deliberately inset so TabPanel/DPI clipping cannot remove the right side. -->
<Border x:Name="SelectedOutline" Margin="0,0,5,0"
BorderBrush="{DynamicResource MainColor}" BorderThickness="1,1,1,0"
CornerRadius="11,11,0,0" Visibility="Collapsed"
IsHitTestVisible="False" Panel.ZIndex="4"/>
<Border x:Name="ContentConnector" Height="2" Margin="1,0,6,0"
VerticalAlignment="Bottom" Background="Transparent" Visibility="Collapsed"
IsHitTestVisible="False" Panel.ZIndex="3"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Panel.ZIndex" Value="10"/>
<Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter TargetName="Surface" Property="BorderBrush" Value="Transparent"/>
<Setter TargetName="SelectedOutline" Property="Visibility" Value="Visible"/>
<Setter TargetName="ContentConnector" Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter TargetName="ContentConnector" Property="Visibility" Value="Visible"/>
<Setter Property="Foreground" Value="{DynamicResource MainColor}"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.45"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="controls:TabView">
<Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="18"/><Setter Property="TabStripPlacement" Value="Top"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource TabViewItemStyle}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="controls:TabView">
<Grid SnapsToDevicePixels="True">
<Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="*"/></Grid.RowDefinitions>
<ScrollViewer x:Name="HeaderScroller" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled"
CanContentScroll="False" PanningMode="HorizontalOnly" Focusable="False"
Margin="0,1,0,0" Panel.ZIndex="2">
<TabPanel IsItemsHost="True" Background="Transparent" KeyboardNavigation.TabIndex="1"/>
</ScrollViewer>
<Border x:Name="ContentFrame" Grid.Row="1" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"
CornerRadius="0,14,14,14" Margin="0,-1,0,0" Panel.ZIndex="1">
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>
</Grid>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style x:Key="NavigationViewItemStyle" TargetType="TabItem">
<Setter Property="Padding" Value="14,11"/><Setter Property="Margin" Value="1,0,1,5"/>
<Setter Property="MinHeight" Value="42"/><Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TabItem">
<controls:UniformRoundedBorder x:Name="Surface" Background="{TemplateBinding Background}" CornerRadius="11">
<Grid>
<Border x:Name="SelectedMark" Width="3" Height="22" HorizontalAlignment="Left" VerticalAlignment="Center"
Background="Transparent" CornerRadius="2"/>
<ContentPresenter x:Name="HeaderContent" ContentSource="Header" Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="Center"/>
</Grid>
</controls:UniformRoundedBorder>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter TargetName="SelectedMark" Property="Background" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/><Setter Property="FontWeight" Value="SemiBold"/></Trigger>
<Trigger Property="IsEnabled" Value="False"><Setter Property="Opacity" Value="0.45"/><Setter Property="Cursor" Value="Arrow"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="controls:NavigationView">
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/><Setter Property="TabStripPlacement" Value="Left"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource NavigationViewItemStyle}"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="controls:NavigationView">
<Grid SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NavigationWidth, RelativeSource={RelativeSource TemplatedParent}}"/>
<ColumnDefinition Width="12"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- The clip and outline share exactly the same bounds and radius. Keeping the host two
pixels inside the layout prevents either outline edge from landing on a clipped boundary. -->
<Grid x:Name="NavigationFrameHost" Margin="2" SnapsToDevicePixels="True" UseLayoutRounding="True">
<controls:UniformRoundedBorder x:Name="NavigationClip" Background="{DynamicResource ToolSurfaceBrush}"
BorderThickness="0" CornerRadius="15" Padding="6">
<ScrollViewer x:Name="NavigationScroller" Background="Transparent" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"
CanContentScroll="True" PanningMode="VerticalOnly" Focusable="False">
<TabPanel IsItemsHost="True" Background="Transparent" KeyboardNavigation.TabIndex="1"/>
</ScrollViewer>
</controls:UniformRoundedBorder>
<controls:UniformRoundedBorder x:Name="NavigationFrame" BorderBrush="{DynamicResource ToolControlHoverBorderBrush}"
BorderThickness="1" CornerRadius="15" Background="Transparent"
RenderOptions.EdgeMode="Aliased" IsHitTestVisible="False" Panel.ZIndex="10"/>
</Grid>
<Border Grid.Column="2" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>
</Grid>
</ControlTemplate></Setter.Value></Setter>
</Style>
<Style TargetType="TabControl"><Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/><Setter Property="BorderThickness" Value="0"/></Style>
<Style TargetType="TabItem">
<Setter Property="Padding" Value="13,8"/><Setter Property="Foreground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
<Setter Property="Background" Value="Transparent"/><Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template"><Setter.Value><ControlTemplate TargetType="TabItem">
<Border x:Name="Surface" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0,0,0,2" CornerRadius="8,8,0,0">
<ContentPresenter ContentSource="Header" HorizontalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolControlHoverBrush}"/></Trigger>
<Trigger Property="IsSelected" Value="True"><Setter TargetName="Surface" Property="Background" Value="{DynamicResource ToolAccentSoftBrush}"/><Setter TargetName="Surface" Property="BorderBrush" Value="{DynamicResource MainColor}"/><Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/></Trigger>
</ControlTemplate.Triggers>
</ControlTemplate></Setter.Value></Setter>
</Style>
</ResourceDictionary>