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:ctr="clr-namespace:XFEToolBox.WpfCore.Controls">
    <StreamGeometry x:Key="SearchIconGeometry">M 7,1 A 6,6 0 1 1 7,13 A 6,6 0 1 1 7,1 M 11.25,11.25 L 15,15</StreamGeometry>
    <Style TargetType="{x:Type ctr:SwitchButton}">
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="IsTabStop" Value="True"/>
        <Setter Property="Cursor" Value="Hand"/>
        <Setter Property="Margin" Value="0,10"/>
        <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToggleButton">
                    <Grid x:Name="root" SnapsToDevicePixels="True">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="40"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid Width="40" Height="20">
                            <Border x:Name="track" Width="40" Height="20" CornerRadius="10" Background="#F3F3F3" BorderBrush="#767676" BorderThickness="1"/>
                            <Border x:Name="thumb" Width="12" Height="12" Background="#5F5F5F" CornerRadius="6" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="4,0,0,0" RenderTransformOrigin="0.5,0.5">
                                <Border.RenderTransform>
                                    <TransformGroup>
                                        <ScaleTransform x:Name="thumbScale" ScaleX="1" ScaleY="1"/>
                                        <TranslateTransform x:Name="thumbTransform" X="0"/>
                                    </TransformGroup>
                                </Border.RenderTransform>
                            </Border>
                        </Grid>
                        <ContentPresenter x:Name="content" Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center"/>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsChecked" Value="True">
                            <Setter TargetName="track" Property="Background" Value="{DynamicResource MainColor}"/>
                            <Setter TargetName="track" Property="BorderBrush" Value="{DynamicResource MainColor}"/>
                            <Setter TargetName="thumb" Property="Background" Value="White"/>
                            <Trigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="thumbTransform" Storyboard.TargetProperty="X" To="20" Duration="0:0:0.18">
                                            <DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut"/></DoubleAnimation.EasingFunction>
                                        </DoubleAnimation>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.EnterActions>
                            <Trigger.ExitActions>
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="thumbTransform" Storyboard.TargetProperty="X" To="0" Duration="0:0:0.18">
                                            <DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut"/></DoubleAnimation.EasingFunction>
                                        </DoubleAnimation>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.ExitActions>
                        </Trigger>
                        <EventTrigger RoutedEvent="MouseEnter" SourceName="track">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="thumbScale" Storyboard.TargetProperty="ScaleX" To="1.18" Duration="0:0:0.16">
                                        <DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut"/></DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="thumbScale" Storyboard.TargetProperty="ScaleY" To="1.18" Duration="0:0:0.16">
                                        <DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut"/></DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="MouseLeave" SourceName="track">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="thumbScale" Storyboard.TargetProperty="ScaleX" To="1" Duration="0:0:0.16">
                                        <DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut"/></DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="thumbScale" Storyboard.TargetProperty="ScaleY" To="1" Duration="0:0:0.16">
                                        <DoubleAnimation.EasingFunction><CubicEase EasingMode="EaseOut"/></DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <Trigger Property="IsPressed" Value="True">
                            <Setter TargetName="thumb" Property="Width" Value="14"/>
                            <Setter TargetName="thumb" Property="Height" Value="14"/>
                            <Setter TargetName="thumb" Property="CornerRadius" Value="7"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="root" Property="Opacity" Value="0.45"/>
                            <Setter Property="Cursor" Value="Arrow"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style TargetType="{x:Type ctr:TabUnderLineButton}">
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="IsTabStop" Value="False"/>
        <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
        <Setter Property="Margin" Value="10,0"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="RadioButton">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="4"/>
                        </Grid.RowDefinitions>
                        <ContentPresenter x:Name="content" Opacity="0.5"/>
                        <Border x:Name="tagBorder" Background="{DynamicResource MainColor}" Grid.Row="1" CornerRadius="3" Height="4" Width="0"/>
                        <Border x:Name="tipBorder" Background="{DynamicResource MainColor}" Grid.Row="1" CornerRadius="20" Width="4" Height="4" Opacity="0"/>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <EventTrigger RoutedEvent="MouseEnter">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="tipBorder" Storyboard.TargetProperty="Opacity" From="0" To="0.8" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="MouseLeave">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="tipBorder" Storyboard.TargetProperty="Opacity" From="0.8" To="0" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="Checked">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="tagBorder" Storyboard.TargetProperty="Width" From="0" To="20" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="content" Storyboard.TargetProperty="Opacity" From="0.5" To="1" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="Unchecked">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="tagBorder" Storyboard.TargetProperty="Width" From="20" To="0" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="content" Storyboard.TargetProperty="Opacity" From="1" To="0.5" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style TargetType="{x:Type ctr:NavigationButton}">
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="IsTabStop" Value="False"/>
        <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
        <Setter Property="Margin" Value="10,0"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="RadioButton">
                    <Border x:Name="outBorder" Height="50" Background="{DynamicResource BackgroundColor}">
                        <Border x:Name="mainBorder" CornerRadius="15" Height="40" HorizontalAlignment="Stretch" Background="{DynamicResource BackgroundColor}" BorderBrush="#9898e7" BorderThickness="1.5" RenderTransformOrigin="0.5,0.5">
                            <Border.RenderTransform>
                                <ScaleTransform x:Name="mainBorderScale" ScaleX="1" ScaleY="1"/>
                            </Border.RenderTransform>
                            <Border.Effect>
                                <DropShadowEffect x:Name="mainBorderShadow" Color="#9898e7" BlurRadius="8" ShadowDepth="3" Direction="-45" Opacity="0"/>
                            </Border.Effect>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="40"/>
                                    <ColumnDefinition Width="10"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Border x:Name="borderSplit" Grid.Column="1" Background="{DynamicResource MainColor}" CornerRadius="2" Width="3" Opacity="0.5" HorizontalAlignment="Left" VerticalAlignment="Stretch" Margin="0,5"/>
                                <ContentPresenter Grid.ColumnSpan="3"/>
                            </Grid>
                        </Border>
                    </Border>
                    <ControlTemplate.Triggers>
                        <EventTrigger RoutedEvent="MouseEnter">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="mainBorderScale" Storyboard.TargetProperty="ScaleX" From="1" To="1.1" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="mainBorderScale" Storyboard.TargetProperty="ScaleY" From="1" To="1.1" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="outBorder" Storyboard.TargetProperty="Height" From="50" To="70" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="MouseLeave">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="mainBorderScale" Storyboard.TargetProperty="ScaleX" From="1.1" To="1" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="mainBorderScale" Storyboard.TargetProperty="ScaleY" From="1.1" To="1" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="outBorder" Storyboard.TargetProperty="Height" From="70" To="50" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="Checked">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="mainBorderShadow" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="borderSplit" Storyboard.TargetProperty="Opacity" From="0.5" To="1" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="Unchecked">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="mainBorderShadow" Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                    <DoubleAnimation Storyboard.TargetName="borderSplit" Storyboard.TargetProperty="Opacity" From="1" To="0.5" Duration="0:0:0.3">
                                        <DoubleAnimation.EasingFunction>
                                            <CubicEase EasingMode="EaseOut"/>
                                        </DoubleAnimation.EasingFunction>
                                    </DoubleAnimation>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style TargetType="{x:Type ctr:HintTextBox}">
        <Setter Property="MinHeight" Value="34"/>
        <Setter Property="Padding" Value="10,0"/>
        <Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
        <Setter Property="CaretBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="SelectionBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="HintForeground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
        <Setter Property="HintTextOpacity" Value="1"/>
        <Setter Property="HintTextMargin" Value="0"/>
        <Setter Property="HintTextHorizontalAlignment" Value="Left"/>
        <Setter Property="HintTextVerticalAlignment" Value="Center"/>
        <Setter Property="TextAlignment" Value="Left"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ctr:HintTextBox}">
                    <Grid Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                        <!-- 输入内容和占位文本共用同一 Padding;提示文本再使用自己的水平、垂直属性定位。 -->
                        <ScrollViewer x:Name="PART_ContentHost"
                                      Margin="{TemplateBinding Padding}"
                                      Focusable="False"
                                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                      HorizontalScrollBarVisibility="{TemplateBinding HorizontalScrollBarVisibility}"
                                      VerticalScrollBarVisibility="{TemplateBinding VerticalScrollBarVisibility}"/>
                        <Grid Margin="{TemplateBinding Padding}" IsHitTestVisible="False">
                            <TextBlock x:Name="hintTextBlock"
                                       Margin="{TemplateBinding HintTextMargin}"
                                       Background="{TemplateBinding HintBackground}"
                                       Foreground="{TemplateBinding HintForeground}"
                                       Text="{TemplateBinding HintText}"
                                       FontSize="{TemplateBinding HintFontSize}"
                                       FontFamily="{TemplateBinding HintFontFamily}"
                                       FontWeight="{TemplateBinding HintFontWeight}"
                                       TextWrapping="{TemplateBinding TextWrapping}"
                                       HorizontalAlignment="{TemplateBinding HintTextHorizontalAlignment}"
                                       VerticalAlignment="{TemplateBinding HintTextVerticalAlignment}"
                                       Opacity="{TemplateBinding HintTextOpacity}"
                                       Visibility="Hidden"/>
                        </Grid>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="Text" Value="">
                            <Setter TargetName="hintTextBlock" Property="Visibility" Value="Visible"/>
                        </Trigger>
                        <Trigger Property="Text" Value="{x:Null}">
                            <Setter TargetName="hintTextBlock" Property="Visibility" Value="Visible"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style TargetType="{x:Type ctr:TextEditor}">
        <Setter Property="MinHeight" Value="34"/>
        <Setter Property="Padding" Value="10,0"/>
        <Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
        <Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
        <Setter Property="CaretBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="SelectionBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="HintForeground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
        <Setter Property="HintTextOpacity" Value="1"/>
        <Setter Property="HintTextMargin" Value="0"/>
        <Setter Property="HintTextHorizontalAlignment" Value="Left"/>
        <Setter Property="HintTextVerticalAlignment" Value="Center"/>
        <Setter Property="EditorBorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/>
        <Setter Property="EditorHoverBorderBrush" Value="{DynamicResource ToolControlHoverBorderBrush}"/>
        <Setter Property="EditorFocusedBorderBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="EditorBorderThickness" Value="1"/>
        <Setter Property="EditorCornerRadius" Value="10"/>
        <Setter Property="IconBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="TextAlignment" Value="Left"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ctr:TextEditor}">
                    <Border x:Name="editorBorder" Padding="{TemplateBinding Padding}" CornerRadius="{TemplateBinding EditorCornerRadius}" BorderBrush="{TemplateBinding EditorBorderBrush}" BorderThickness="{TemplateBinding EditorBorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Path x:Name="iconPath" Width="{TemplateBinding IconSize}" Height="{TemplateBinding IconSize}" Margin="{TemplateBinding IconMargin}" Data="{TemplateBinding Icon}" Stroke="{TemplateBinding IconBrush}" StrokeThickness="1.6" StrokeStartLineCap="Round" StrokeEndLineCap="Round" Stretch="Uniform" VerticalAlignment="Center"/>
                            <!-- 背景只由外层 editorBorder 绘制,避免半透明色在文本区域重复叠加。 -->
                            <ctr:HintTextBox Grid.Column="1" Padding="0" BorderThickness="0"
                                             Background="Transparent" Foreground="{TemplateBinding Foreground}"
                                             FontFamily="{TemplateBinding FontFamily}" FontSize="{TemplateBinding FontSize}" FontWeight="{TemplateBinding FontWeight}"
                                             HintBackground="{TemplateBinding HintBackground}"
                                             Text="{Binding Text, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                             HintForeground="{TemplateBinding HintForeground}" HintText="{TemplateBinding HintText}"
                                             HintFontSize="{TemplateBinding HintFontSize}" HintFontFamily="{TemplateBinding HintFontFamily}" HintFontWeight="{TemplateBinding HintFontWeight}"
                                             HintTextHorizontalAlignment="{TemplateBinding HintTextHorizontalAlignment}" HintTextVerticalAlignment="{TemplateBinding HintTextVerticalAlignment}"
                                             HintTextMargin="{TemplateBinding HintTextMargin}" HintTextOpacity="{TemplateBinding HintTextOpacity}"
                                             CaretBrush="{TemplateBinding CaretBrush}" SelectionBrush="{TemplateBinding SelectionBrush}" SelectionTextBrush="{TemplateBinding SelectionTextBrush}"
                                             IsReadOnly="{TemplateBinding IsReadOnly}" IsReadOnlyCaretVisible="{TemplateBinding IsReadOnlyCaretVisible}"
                                             HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
                                             HorizontalScrollBarVisibility="{TemplateBinding HorizontalScrollBarVisibility}" VerticalScrollBarVisibility="{TemplateBinding VerticalScrollBarVisibility}"
                                             AcceptsReturn="{TemplateBinding AcceptsReturn}" AcceptsTab="{TemplateBinding AcceptsTab}"
                                             MaxLength="{TemplateBinding MaxLength}" MinLines="{TemplateBinding MinLines}" MaxLines="{TemplateBinding MaxLines}"
                                             CharacterCasing="{TemplateBinding CharacterCasing}"
                                             IsEnabled="{TemplateBinding IsEnabled}" IsInactiveSelectionHighlightEnabled="{TemplateBinding IsInactiveSelectionHighlightEnabled}"
                                             UndoLimit="{TemplateBinding UndoLimit}" IsUndoEnabled="{TemplateBinding IsUndoEnabled}"
                                             TextWrapping="{TemplateBinding TextWrapping}" TextAlignment="{TemplateBinding TextAlignment}" TextDecorations="{TemplateBinding TextDecorations}"/>
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="Icon" Value="{x:Null}">
                            <Setter TargetName="iconPath" Property="Visibility" Value="Collapsed"/>
                        </Trigger>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter TargetName="editorBorder" Property="BorderBrush" Value="{Binding EditorHoverBorderBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
                        </Trigger>
                        <Trigger Property="IsKeyboardFocusWithin" Value="True">
                            <Setter TargetName="editorBorder" Property="BorderBrush" Value="{Binding EditorFocusedBorderBrush, RelativeSource={RelativeSource TemplatedParent}}"/>
                            <Setter TargetName="editorBorder" Property="BorderThickness" Value="1.5"/>
                        </Trigger>
                        <Trigger Property="AcceptsReturn" Value="True">
                            <Setter Property="VerticalContentAlignment" Value="Top"/>
                            <Setter Property="HintTextVerticalAlignment" Value="Top"/>
                            <Setter TargetName="iconPath" Property="VerticalAlignment" Value="Top"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="editorBorder" Property="Opacity" Value="0.5"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style TargetType="{x:Type ctr:PasswordEditor}">
        <Setter Property="MinHeight" Value="34"/>
        <Setter Property="Padding" Value="10,0,4,0"/>
        <Setter Property="Background" Value="{DynamicResource ToolControlBackgroundBrush}"/>
        <Setter Property="Foreground" Value="{DynamicResource ToolTextPrimaryBrush}"/>
        <Setter Property="CaretBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="SelectionBrush" Value="{DynamicResource MainColor}"/>
        <Setter Property="HintForeground" Value="{DynamicResource ToolTextSecondaryBrush}"/>
        <Setter Property="HintTextOpacity" Value="1"/>
        <Setter Property="HintTextMargin" Value="0"/>
        <Setter Property="HintTextHorizontalAlignment" Value="Left"/>
        <Setter Property="HintTextVerticalAlignment" Value="Center"/>
        <Setter Property="EditorBorderBrush" Value="{DynamicResource ToolControlBorderBrush}"/>
        <Setter Property="EditorBorderThickness" Value="1"/>
        <Setter Property="EditorCornerRadius" Value="10"/>
        <Setter Property="TextAlignment" Value="Left"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
    </Style>
    <Style TargetType="{x:Type ctr:CheckButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ctr:CheckButton}">
                    <Grid x:Name="mainGrid">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="25"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid>
                            <Border CornerRadius="20" Width="20" Height="20" HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" BorderBrush="{DynamicResource MainColor}" BorderThickness="2"/>
                            <Image x:Name="checkImage" Source="/XFEToolBox.WpfCore;component/Resources/Image/check.png" Visibility="Hidden"/>
                        </Grid>
                        <ContentPresenter Grid.Column="1"/>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsChecked" Value="True">
                            <Setter TargetName="checkImage" Property="Visibility" Value="Visible"/>
                        </Trigger>
                        <Trigger Property="IsEnabled" Value="False">
                            <Setter TargetName="mainGrid" Property="Opacity" Value="0.5"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>