XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEToolBox

【WPF】XFE工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
<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>