1389 lines
69 KiB
XML
1389 lines
69 KiB
XML
<ResourceDictionary
|
||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
xmlns:conv="clr-namespace:ShrlAlgoToolkit.Mvvm.Converters;assembly=ShrlAlgoToolkit.Mvvm"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||
<ResourceDictionary.MergedDictionaries>
|
||
<ResourceDictionary Source="Colors.xaml" />
|
||
</ResourceDictionary.MergedDictionaries>
|
||
<conv:BooleanToVisConverter x:Key="BooleanToVisConverter" />
|
||
<!-- Base Style -->
|
||
<Style x:Key="GlassBase">
|
||
<Setter Property="Control.Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="Control.BorderBrush" Value="{StaticResource GlassBorderBrush}" />
|
||
<Setter Property="Control.BorderThickness" Value="1.5" />
|
||
<Setter Property="Control.Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
</Style>
|
||
|
||
<!-- Button Style (圆角减小为6) -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="Button"
|
||
x:Key="GlassButton">
|
||
<Setter Property="FontWeight" Value="SemiBold" />
|
||
<Setter Property="Padding" Value="16,8" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="Button">
|
||
<Grid>
|
||
<Border
|
||
Background="Transparent"
|
||
CornerRadius="6"
|
||
Margin="1,3,1,0"
|
||
x:Name="shadow">
|
||
<Border.Effect>
|
||
<DropShadowEffect
|
||
BlurRadius="10"
|
||
Color="#80B0C4DE"
|
||
Opacity="0.15"
|
||
ShadowDepth="2" />
|
||
</Border.Effect>
|
||
</Border>
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="6"
|
||
x:Name="border">
|
||
<Grid>
|
||
<Border
|
||
Background="{StaticResource GlassHighlightBrush}"
|
||
CornerRadius="6"
|
||
Opacity="0.18" />
|
||
<ContentPresenter
|
||
HorizontalAlignment="Center"
|
||
Margin="2,1,2,1"
|
||
VerticalAlignment="Center"
|
||
x:Name="contentPresenter" />
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="border" Value="#B0E0FF" />
|
||
<Setter Property="Opacity" TargetName="border" Value="0.95" />
|
||
</Trigger>
|
||
<Trigger Property="IsPressed" Value="True">
|
||
<Setter Property="Opacity" TargetName="border" Value="0.85" />
|
||
</Trigger>
|
||
<Trigger Property="IsEnabled" Value="False">
|
||
<Setter Property="Opacity" Value="0.5" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- TextBox Style -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="TextBox"
|
||
x:Key="GlassTextBox">
|
||
<Setter Property="Padding" Value="10,6" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="TextBox">
|
||
<Grid>
|
||
<Border
|
||
Background="Transparent"
|
||
CornerRadius="8"
|
||
Margin="1,3,1,0"
|
||
x:Name="shadow">
|
||
<Border.Effect>
|
||
<DropShadowEffect
|
||
BlurRadius="10"
|
||
Color="#80B0C4DE"
|
||
Opacity="0.13"
|
||
ShadowDepth="1" />
|
||
</Border.Effect>
|
||
</Border>
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="8"
|
||
x:Name="border">
|
||
<Grid>
|
||
<Border
|
||
Background="{StaticResource GlassHighlightBrush}"
|
||
CornerRadius="8"
|
||
Opacity="0.18" />
|
||
<ScrollViewer Margin="{TemplateBinding Padding}" x:Name="PART_ContentHost" />
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="border" Value="#B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsFocused" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="border" Value="#B0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- PasswordBox Style -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="PasswordBox"
|
||
x:Key="GlassPasswordBox">
|
||
<Setter Property="Padding" Value="10,6" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="PasswordBox">
|
||
<Grid>
|
||
<Border
|
||
Background="Transparent"
|
||
CornerRadius="8"
|
||
Margin="1,3,1,0"
|
||
x:Name="shadow">
|
||
<Border.Effect>
|
||
<DropShadowEffect
|
||
BlurRadius="10"
|
||
Color="#80B0C4DE"
|
||
Opacity="0.13"
|
||
ShadowDepth="1" />
|
||
</Border.Effect>
|
||
</Border>
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="8"
|
||
x:Name="border">
|
||
<Grid>
|
||
<Border
|
||
Background="{StaticResource GlassHighlightBrush}"
|
||
CornerRadius="8"
|
||
Opacity="0.18" />
|
||
<ScrollViewer Margin="{TemplateBinding Padding}" x:Name="PART_ContentHost" />
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="border" Value="#B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsFocused" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="border" Value="#B0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- ComboBox Style (优化Popup宽度) -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="ComboBox"
|
||
x:Key="GlassComboBox">
|
||
<Setter Property="MinWidth" Value="80" />
|
||
<Setter Property="Padding" Value="10,6" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="ComboBox">
|
||
<Grid>
|
||
<Border
|
||
Background="Transparent"
|
||
CornerRadius="8"
|
||
Margin="1,3,1,0"
|
||
x:Name="shadow">
|
||
<Border.Effect>
|
||
<DropShadowEffect
|
||
BlurRadius="10"
|
||
Color="#80B0C4DE"
|
||
Opacity="0.13"
|
||
ShadowDepth="1" />
|
||
</Border.Effect>
|
||
</Border>
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="8"
|
||
x:Name="border">
|
||
<Grid>
|
||
<Border
|
||
Background="{StaticResource GlassHighlightBrush}"
|
||
CornerRadius="8"
|
||
Opacity="0.18" />
|
||
<Grid>
|
||
<ContentPresenter
|
||
Content="{TemplateBinding SelectionBoxItem}"
|
||
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
|
||
HorizontalAlignment="Left"
|
||
Margin="{TemplateBinding Padding}"
|
||
VerticalAlignment="Center"
|
||
x:Name="contentPresenter" />
|
||
<ToggleButton
|
||
Background="Transparent"
|
||
BorderThickness="0"
|
||
Focusable="False"
|
||
Grid.Column="1"
|
||
Height="24"
|
||
HorizontalAlignment="Right"
|
||
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
|
||
Margin="0,0,4,0"
|
||
VerticalAlignment="Center"
|
||
Width="24"
|
||
x:Name="toggleButton">
|
||
<Path
|
||
Data="M0,0 L8,0 L4,5 Z"
|
||
Fill="#B0E0FF"
|
||
Height="8"
|
||
Stretch="Uniform"
|
||
Width="12"
|
||
x:Name="arrow" />
|
||
</ToggleButton>
|
||
</Grid>
|
||
</Grid>
|
||
</Border>
|
||
<Popup
|
||
AllowsTransparency="True"
|
||
IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
|
||
Placement="Bottom"
|
||
PopupAnimation="Fade"
|
||
x:Name="PART_Popup">
|
||
<Border
|
||
Background="{StaticResource GlassGradientBrush}"
|
||
BorderBrush="#B0E0FF"
|
||
BorderThickness="1.5"
|
||
CornerRadius="8"
|
||
MinWidth="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ComboBox}}"
|
||
x:Name="dropDownBorder">
|
||
<ScrollViewer SnapsToDevicePixels="True">
|
||
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Contained" />
|
||
</ScrollViewer>
|
||
</Border>
|
||
</Popup>
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- ListBox Style -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="ListBox"
|
||
x:Key="GlassListBox">
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="ListBox">
|
||
<Grid>
|
||
<Border
|
||
Background="Transparent"
|
||
CornerRadius="8"
|
||
Margin="1,3,1,0"
|
||
x:Name="shadow">
|
||
<Border.Effect>
|
||
<DropShadowEffect
|
||
BlurRadius="10"
|
||
Color="#80B0C4DE"
|
||
Opacity="0.13"
|
||
ShadowDepth="1" />
|
||
</Border.Effect>
|
||
</Border>
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="8"
|
||
x:Name="border">
|
||
<Grid>
|
||
<Border
|
||
Background="{StaticResource GlassHighlightBrush}"
|
||
CornerRadius="8"
|
||
Opacity="0.18" />
|
||
<ScrollViewer Focusable="False" Padding="{TemplateBinding Padding}">
|
||
<ItemsPresenter />
|
||
</ScrollViewer>
|
||
</Grid>
|
||
</Border>
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- TreeView Toggle Button Style -->
|
||
<Style TargetType="ToggleButton" x:Key="TreeViewToggleButtonStyle">
|
||
<Setter Property="Width" Value="16" />
|
||
<Setter Property="Height" Value="16" />
|
||
<Setter Property="Cursor" Value="Hand" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="ToggleButton">
|
||
<Border
|
||
Background="Transparent"
|
||
Height="16"
|
||
Width="16">
|
||
<Path
|
||
Data="M 4 6 L 8 10 L 12 6"
|
||
Height="8"
|
||
RenderTransformOrigin="0.5,0.5"
|
||
Stretch="Uniform"
|
||
Stroke="#B0E0FF"
|
||
StrokeEndLineCap="Round"
|
||
StrokeStartLineCap="Round"
|
||
StrokeThickness="1.5"
|
||
Width="8"
|
||
x:Name="ExpandPath">
|
||
<Path.RenderTransform>
|
||
<RotateTransform Angle="0" x:Name="ExpandPathRotate" />
|
||
</Path.RenderTransform>
|
||
</Path>
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsChecked" Value="True">
|
||
<Trigger.EnterActions>
|
||
<BeginStoryboard>
|
||
<Storyboard>
|
||
<DoubleAnimation
|
||
Duration="0:0:0.2"
|
||
Storyboard.TargetName="ExpandPathRotate"
|
||
Storyboard.TargetProperty="Angle"
|
||
To="180" />
|
||
</Storyboard>
|
||
</BeginStoryboard>
|
||
</Trigger.EnterActions>
|
||
<Trigger.ExitActions>
|
||
<BeginStoryboard>
|
||
<Storyboard>
|
||
<DoubleAnimation
|
||
Duration="0:0:0.2"
|
||
Storyboard.TargetName="ExpandPathRotate"
|
||
Storyboard.TargetProperty="Angle"
|
||
To="0" />
|
||
</Storyboard>
|
||
</BeginStoryboard>
|
||
</Trigger.ExitActions>
|
||
</Trigger>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Stroke" TargetName="ExpandPath" Value="#D0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- TreeView Style -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="TreeView"
|
||
x:Key="GlassTreeView">
|
||
<Setter Property="Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Padding" Value="4" />
|
||
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
|
||
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="TreeView">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="6">
|
||
<ScrollViewer
|
||
CanContentScroll="False"
|
||
Focusable="False"
|
||
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
|
||
Padding="{TemplateBinding Padding}"
|
||
VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}">
|
||
<ItemsPresenter />
|
||
</ScrollViewer>
|
||
</Border>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- TreeViewItem Style -->
|
||
<Style TargetType="TreeViewItem" x:Key="GlassTreeViewItem">
|
||
<Setter Property="Background" Value="Transparent" />
|
||
<Setter Property="HorizontalContentAlignment" Value="Left" />
|
||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||
<Setter Property="Padding" Value="4,2" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="TreeViewItem">
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition />
|
||
</Grid.RowDefinitions>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition MinWidth="19" Width="Auto" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
<ToggleButton
|
||
IsChecked="{Binding Path=IsExpanded, RelativeSource={RelativeSource TemplatedParent}}"
|
||
Margin="1,0,4,0"
|
||
Style="{StaticResource TreeViewToggleButtonStyle}"
|
||
VerticalAlignment="Center"
|
||
x:Name="Expander" />
|
||
<Border
|
||
Background="Transparent"
|
||
BorderBrush="Transparent"
|
||
BorderThickness="1"
|
||
CornerRadius="4"
|
||
Grid.Column="1"
|
||
Padding="{TemplateBinding Padding}"
|
||
SnapsToDevicePixels="True"
|
||
x:Name="Bd">
|
||
<ContentPresenter
|
||
ContentSource="Header"
|
||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
|
||
x:Name="PART_Header" />
|
||
</Border>
|
||
<ItemsPresenter
|
||
Grid.Column="1"
|
||
Grid.Row="1"
|
||
Margin="12,0,0,0"
|
||
x:Name="ItemsHost" />
|
||
</Grid>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="HasItems" Value="False">
|
||
<Setter Property="Visibility" TargetName="Expander" Value="Hidden" />
|
||
</Trigger>
|
||
<Trigger Property="IsExpanded" Value="False">
|
||
<Setter Property="Visibility" TargetName="ItemsHost" Value="Collapsed" />
|
||
</Trigger>
|
||
<Trigger Property="IsSelected" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#33B0E0FF" />
|
||
<Setter Property="BorderBrush" TargetName="Bd" Value="#B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#22FFFFFF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- RadioButton Style -->
|
||
<Style TargetType="RadioButton" x:Key="GlassRadioButton">
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="Padding" Value="8,2" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="RadioButton">
|
||
<Grid>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="20" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
<Border
|
||
Background="{StaticResource GlassGradientBrush}"
|
||
BorderBrush="{StaticResource GlassBorderBrush}"
|
||
BorderThickness="1.5"
|
||
CornerRadius="9"
|
||
Height="18"
|
||
Width="18"
|
||
x:Name="radioOuter">
|
||
<Border
|
||
Background="#B0E0FF"
|
||
CornerRadius="4"
|
||
Height="8"
|
||
Opacity="0"
|
||
Width="8"
|
||
x:Name="radioInner" />
|
||
</Border>
|
||
<ContentPresenter
|
||
Grid.Column="1"
|
||
HorizontalAlignment="Left"
|
||
Margin="{TemplateBinding Padding}"
|
||
VerticalAlignment="Center" />
|
||
</Grid>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsChecked" Value="True">
|
||
<Setter Property="Opacity" TargetName="radioInner" Value="1" />
|
||
</Trigger>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="radioOuter" Value="#B0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- CheckBox Style -->
|
||
<Style TargetType="CheckBox" x:Key="GlassCheckBox">
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="Padding" Value="8,2" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="CheckBox">
|
||
<Grid>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="20" />
|
||
<ColumnDefinition Width="*" />
|
||
</Grid.ColumnDefinitions>
|
||
<Border
|
||
Background="{StaticResource GlassGradientBrush}"
|
||
BorderBrush="{StaticResource GlassBorderBrush}"
|
||
BorderThickness="1.5"
|
||
CornerRadius="4"
|
||
Height="18"
|
||
Width="18"
|
||
x:Name="checkOuter">
|
||
<Path
|
||
Data="M1,5 L4,9 L9,1"
|
||
Height="10"
|
||
Opacity="0"
|
||
Stretch="Uniform"
|
||
Stroke="#B0E0FF"
|
||
StrokeThickness="2"
|
||
Width="10"
|
||
x:Name="checkMark" />
|
||
</Border>
|
||
<ContentPresenter
|
||
Grid.Column="1"
|
||
HorizontalAlignment="Left"
|
||
Margin="{TemplateBinding Padding}"
|
||
VerticalAlignment="Center" />
|
||
</Grid>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsChecked" Value="True">
|
||
<Setter Property="Opacity" TargetName="checkMark" Value="1" />
|
||
</Trigger>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="checkOuter" Value="#B0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Slider Style -->
|
||
<Style TargetType="Slider" x:Key="GlassSlider">
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="Slider">
|
||
<Grid>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto" />
|
||
<RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
<Border
|
||
Background="#40FFFFFF"
|
||
BorderBrush="{StaticResource GlassBorderBrush}"
|
||
BorderThickness="1"
|
||
CornerRadius="2"
|
||
Grid.Row="1"
|
||
Height="4"
|
||
Margin="5,0"
|
||
x:Name="TrackBackground" />
|
||
<Track Grid.Row="1" x:Name="PART_Track">
|
||
<Track.DecreaseRepeatButton>
|
||
<RepeatButton
|
||
Background="{StaticResource GlassGradientBrush}"
|
||
BorderBrush="Transparent"
|
||
Command="Slider.DecreaseLarge"
|
||
Opacity="0" />
|
||
</Track.DecreaseRepeatButton>
|
||
<Track.IncreaseRepeatButton>
|
||
<RepeatButton
|
||
Background="Transparent"
|
||
BorderBrush="Transparent"
|
||
Command="Slider.IncreaseLarge"
|
||
Opacity="0" />
|
||
</Track.IncreaseRepeatButton>
|
||
<Track.Thumb>
|
||
<Thumb x:Name="Thumb">
|
||
<Thumb.Template>
|
||
<ControlTemplate TargetType="Thumb">
|
||
<Grid>
|
||
<Border
|
||
Background="{StaticResource GlassGradientBrush}"
|
||
BorderBrush="{StaticResource GlassBorderBrush}"
|
||
BorderThickness="1.5"
|
||
CornerRadius="8"
|
||
Height="16"
|
||
Width="16">
|
||
<Border
|
||
Background="{StaticResource GlassHighlightBrush}"
|
||
CornerRadius="8"
|
||
Opacity="0.25" />
|
||
</Border>
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Thumb.Template>
|
||
</Thumb>
|
||
</Track.Thumb>
|
||
</Track>
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- ProgressBar Style (不确定进度条动画修正) -->
|
||
<Style TargetType="ProgressBar" x:Key="GlassProgressBar">
|
||
<Setter Property="Height" Value="8" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="ProgressBar">
|
||
<Grid>
|
||
<Border
|
||
Background="#40FFFFFF"
|
||
BorderBrush="{StaticResource GlassBorderBrush}"
|
||
BorderThickness="1"
|
||
CornerRadius="4" />
|
||
<Border
|
||
Background="{StaticResource GlassGradientBrush}"
|
||
BorderBrush="Transparent"
|
||
CornerRadius="4"
|
||
x:Name="PART_Track">
|
||
<Border.Effect>
|
||
<DropShadowEffect
|
||
BlurRadius="8"
|
||
Color="#80B0E0FF"
|
||
ShadowDepth="0" />
|
||
</Border.Effect>
|
||
</Border>
|
||
<Rectangle
|
||
Fill="#B0E0FF"
|
||
Height="8"
|
||
HorizontalAlignment="Left"
|
||
RadiusX="4"
|
||
RadiusY="4"
|
||
Visibility="Visible"
|
||
x:Name="PART_Indicator" />
|
||
<Rectangle
|
||
Fill="#80B0E0FF"
|
||
Height="8"
|
||
HorizontalAlignment="Left"
|
||
RadiusX="4"
|
||
RadiusY="4"
|
||
Visibility="Collapsed"
|
||
Width="60"
|
||
x:Name="PART_Glow">
|
||
<Rectangle.RenderTransform>
|
||
<TranslateTransform X="0" x:Name="GlowTransform" />
|
||
</Rectangle.RenderTransform>
|
||
</Rectangle>
|
||
</Grid>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsIndeterminate" Value="True">
|
||
<Setter Property="Visibility" TargetName="PART_Indicator" Value="Collapsed" />
|
||
<Setter Property="Visibility" TargetName="PART_Glow" Value="Visible" />
|
||
<Trigger.EnterActions>
|
||
<BeginStoryboard>
|
||
<Storyboard RepeatBehavior="Forever">
|
||
<DoubleAnimation
|
||
Duration="0:0:1.2"
|
||
From="0"
|
||
Storyboard.TargetName="GlowTransform"
|
||
Storyboard.TargetProperty="X"
|
||
To="200" />
|
||
</Storyboard>
|
||
</BeginStoryboard>
|
||
</Trigger.EnterActions>
|
||
<Trigger.ExitActions>
|
||
<RemoveStoryboard />
|
||
</Trigger.ExitActions>
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- ScrollBar Style -->
|
||
<Style TargetType="ScrollBar" x:Key="GlassScrollBar">
|
||
<Setter Property="Width" Value="8" />
|
||
<Setter Property="MinWidth" Value="8" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="ScrollBar">
|
||
<Grid
|
||
Background="Transparent"
|
||
SnapsToDevicePixels="true"
|
||
x:Name="Bg">
|
||
<Track IsDirectionReversed="true" x:Name="PART_Track">
|
||
<Track.DecreaseRepeatButton>
|
||
<RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Opacity="0" />
|
||
</Track.DecreaseRepeatButton>
|
||
<Track.IncreaseRepeatButton>
|
||
<RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Opacity="0" />
|
||
</Track.IncreaseRepeatButton>
|
||
<Track.Thumb>
|
||
<Thumb>
|
||
<Thumb.Template>
|
||
<ControlTemplate TargetType="Thumb">
|
||
<Border
|
||
Background="{StaticResource GlassGradientBrushHorizontal}"
|
||
BorderBrush="#40FFFFFF"
|
||
BorderThickness="1"
|
||
CornerRadius="4"
|
||
Opacity="0.6"
|
||
x:Name="ThumbBorder">
|
||
<Border.Effect>
|
||
<DropShadowEffect
|
||
BlurRadius="4"
|
||
Color="#40B0E0FF"
|
||
ShadowDepth="0" />
|
||
</Border.Effect>
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Opacity" TargetName="ThumbBorder" Value="0.8" />
|
||
</Trigger>
|
||
<Trigger Property="IsDragging" Value="True">
|
||
<Setter Property="Opacity" TargetName="ThumbBorder" Value="1" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Thumb.Template>
|
||
</Thumb>
|
||
</Track.Thumb>
|
||
</Track>
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
<Style.Triggers>
|
||
<Trigger Property="Orientation" Value="Horizontal">
|
||
<Setter Property="Height" Value="8" />
|
||
<Setter Property="MinHeight" Value="8" />
|
||
</Trigger>
|
||
</Style.Triggers>
|
||
</Style>
|
||
<!-- ScrollViewer Style -->
|
||
<Style TargetType="ScrollViewer" x:Key="GlassScrollViewer">
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="ScrollViewer">
|
||
<Grid Background="{TemplateBinding Background}">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="*" />
|
||
<RowDefinition Height="Auto" />
|
||
</Grid.RowDefinitions>
|
||
|
||
<ScrollContentPresenter Grid.Column="0" Grid.Row="0" />
|
||
|
||
<ScrollBar
|
||
Grid.Column="1"
|
||
Grid.Row="0"
|
||
Maximum="{TemplateBinding ScrollableHeight}"
|
||
Style="{StaticResource GlassScrollBar}"
|
||
Value="{TemplateBinding VerticalOffset}"
|
||
ViewportSize="{TemplateBinding ViewportHeight}"
|
||
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
|
||
x:Name="PART_VerticalScrollBar" />
|
||
|
||
<ScrollBar
|
||
Grid.Column="0"
|
||
Grid.Row="1"
|
||
Maximum="{TemplateBinding ScrollableWidth}"
|
||
Orientation="Horizontal"
|
||
Style="{StaticResource GlassScrollBar}"
|
||
Value="{TemplateBinding HorizontalOffset}"
|
||
ViewportSize="{TemplateBinding ViewportWidth}"
|
||
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
|
||
x:Name="PART_HorizontalScrollBar" />
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- DataGrid Style (表头显示、编辑样式) -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="DataGrid"
|
||
x:Key="GlassDataGrid">
|
||
<Setter Property="Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="GridLinesVisibility" Value="All" />
|
||
<Setter Property="RowHeight" Value="32" />
|
||
<Setter Property="HeadersVisibility" Value="Column" />
|
||
<Setter Property="HorizontalGridLinesBrush" Value="#15B0E0FF" />
|
||
<Setter Property="VerticalGridLinesBrush" Value="#15B0E0FF" />
|
||
<Setter Property="RowBackground" Value="#10FFFFFF" />
|
||
<Setter Property="AlternatingRowBackground" Value="#05B0E0FF" />
|
||
<Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
|
||
<Setter Property="VerticalScrollBarVisibility" Value="Auto" />
|
||
<Setter Property="SelectionMode" Value="Extended" />
|
||
<Setter Property="SelectionUnit" Value="FullRow" />
|
||
<Setter Property="CanUserAddRows" Value="False" />
|
||
<Setter Property="CanUserDeleteRows" Value="False" />
|
||
<Setter Property="CanUserResizeRows" Value="False" />
|
||
<Setter Property="AutoGenerateColumns" Value="True" />
|
||
<Setter Property="CellStyle">
|
||
<Setter.Value>
|
||
<Style TargetType="DataGridCell">
|
||
<Setter Property="BorderThickness" Value="0" />
|
||
<Setter Property="Padding" Value="8,4" />
|
||
<Setter Property="Background" Value="Transparent" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="DataGridCell">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderThickness="0"
|
||
Padding="{TemplateBinding Padding}"
|
||
SnapsToDevicePixels="True"
|
||
x:Name="Bd">
|
||
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsSelected" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#33B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#22FFFFFF" />
|
||
</Trigger>
|
||
<Trigger Property="IsEditing" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#FFF9F9F9" />
|
||
<Setter Property="BorderBrush" TargetName="Bd" Value="#B0E0FF" />
|
||
<Setter Property="BorderThickness" TargetName="Bd" Value="1" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
</Setter.Value>
|
||
</Setter>
|
||
<Setter Property="ColumnHeaderStyle">
|
||
<Setter.Value>
|
||
<Style TargetType="DataGridColumnHeader">
|
||
<Setter Property="Background" Value="#22B0E0FF" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="FontWeight" Value="SemiBold" />
|
||
<Setter Property="Height" Value="40" />
|
||
<Setter Property="Padding" Value="8,0" />
|
||
<Setter Property="HorizontalContentAlignment" Value="Center" />
|
||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||
<Setter Property="BorderBrush" Value="#B0E0FF" />
|
||
<Setter Property="BorderThickness" Value="0,0,0,1" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="DataGridColumnHeader">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
x:Name="BackgroundBorder">
|
||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||
</Border>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
</Setter.Value>
|
||
</Setter>
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="DataGrid">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="6"
|
||
SnapsToDevicePixels="True">
|
||
<ScrollViewer
|
||
Focusable="false"
|
||
Style="{StaticResource GlassScrollViewer}"
|
||
x:Name="DG_ScrollViewer">
|
||
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
|
||
</ScrollViewer>
|
||
</Border>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Expander 箭头按钮样式(垂直居中) -->
|
||
<Style TargetType="ToggleButton" x:Key="ExpanderToggleButtonStyle">
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="ToggleButton">
|
||
<Border
|
||
Background="Transparent"
|
||
Height="24"
|
||
SnapsToDevicePixels="True"
|
||
VerticalAlignment="Center"
|
||
Width="24">
|
||
<Path
|
||
Data="M 0,0 L 10,0 L 5,7 Z"
|
||
Fill="#B0E0FF"
|
||
Height="14"
|
||
HorizontalAlignment="Center"
|
||
RenderTransformOrigin="0.5,0.5"
|
||
SnapsToDevicePixels="True"
|
||
VerticalAlignment="Center"
|
||
Width="14"
|
||
x:Name="Arrow">
|
||
<Path.RenderTransform>
|
||
<RotateTransform Angle="0" x:Name="ArrowRotate" />
|
||
</Path.RenderTransform>
|
||
</Path>
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsChecked" Value="True">
|
||
<Trigger.EnterActions>
|
||
<BeginStoryboard>
|
||
<Storyboard>
|
||
<DoubleAnimation
|
||
Duration="0:0:0.2"
|
||
Storyboard.TargetName="ArrowRotate"
|
||
Storyboard.TargetProperty="Angle"
|
||
To="180" />
|
||
</Storyboard>
|
||
</BeginStoryboard>
|
||
</Trigger.EnterActions>
|
||
<Trigger.ExitActions>
|
||
<BeginStoryboard>
|
||
<Storyboard>
|
||
<DoubleAnimation
|
||
Duration="0:0:0.2"
|
||
Storyboard.TargetName="ArrowRotate"
|
||
Storyboard.TargetProperty="Angle"
|
||
To="0" />
|
||
</Storyboard>
|
||
</BeginStoryboard>
|
||
</Trigger.ExitActions>
|
||
</Trigger>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Fill" TargetName="Arrow" Value="#D0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Expander Style (箭头放右侧) -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="Expander"
|
||
x:Key="GlassExpander">
|
||
<Setter Property="Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Padding" Value="8" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="Expander">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="6">
|
||
<DockPanel>
|
||
<Grid
|
||
Background="Transparent"
|
||
DockPanel.Dock="Top"
|
||
Height="32">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<ContentPresenter
|
||
ContentSource="Header"
|
||
Grid.Column="0"
|
||
Margin="4,0,0,0"
|
||
RecognizesAccessKey="True"
|
||
VerticalAlignment="Center" />
|
||
<ToggleButton
|
||
Grid.Column="1"
|
||
IsChecked="{Binding IsExpanded, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
|
||
Margin="4,0,4,0"
|
||
Style="{StaticResource ExpanderToggleButtonStyle}"
|
||
VerticalAlignment="Center"
|
||
x:Name="HeaderToggle" />
|
||
</Grid>
|
||
<Border
|
||
Background="#10FFFFFF"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="0,1,0,0"
|
||
CornerRadius="0,0,5,5"
|
||
DockPanel.Dock="Bottom"
|
||
Margin="1,4,1,1"
|
||
Padding="12,8"
|
||
Visibility="Collapsed"
|
||
x:Name="ContentBorder">
|
||
<ContentPresenter />
|
||
</Border>
|
||
</DockPanel>
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsExpanded" Value="True">
|
||
<Setter Property="Visibility" TargetName="ContentBorder" Value="Visible" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- GroupBox Style 全面重写,支持Header -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="GroupBox"
|
||
x:Key="GlassGroupBox">
|
||
<Setter Property="Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Padding" Value="12" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="GroupBox">
|
||
<Grid>
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="6" />
|
||
<TextBlock
|
||
FontWeight="Bold"
|
||
Foreground="{StaticResource PrimaryTextBrush}"
|
||
Margin="16,0,0,0"
|
||
Text="{TemplateBinding Header}"
|
||
VerticalAlignment="Top" />
|
||
<ContentPresenter Margin="12,28,12,12" />
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Calendar Navigation Button Style (前后翻页、年/月切换) -->
|
||
<Style TargetType="Button" x:Key="GlassCalendarNavButton">
|
||
<Setter Property="Width" Value="32" />
|
||
<Setter Property="Height" Value="32" />
|
||
<Setter Property="Background" Value="#10B0E0FF" />
|
||
<Setter Property="BorderBrush" Value="#B0E0FF" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="FontWeight" Value="SemiBold" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="Button">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="16"
|
||
x:Name="Bd">
|
||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#22B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsPressed" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#33B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsEnabled" Value="False">
|
||
<Setter Property="Opacity" TargetName="Bd" Value="0.4" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Calendar RepeatButton Style (用于长按翻页) -->
|
||
<Style TargetType="RepeatButton" x:Key="GlassCalendarRepeatButton">
|
||
<Setter Property="Width" Value="32" />
|
||
<Setter Property="Height" Value="32" />
|
||
<Setter Property="Background" Value="#10B0E0FF" />
|
||
<Setter Property="BorderBrush" Value="#B0E0FF" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="FontWeight" Value="SemiBold" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="RepeatButton">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="16"
|
||
x:Name="Bd">
|
||
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#22B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsPressed" Value="True">
|
||
<Setter Property="Background" TargetName="Bd" Value="#33B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsEnabled" Value="False">
|
||
<Setter Property="Opacity" TargetName="Bd" Value="0.4" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Calendar Button Style (年/月/周标题按钮) -->
|
||
<Style TargetType="CalendarButton" x:Key="GlassCalendarButton">
|
||
<Setter Property="Background" Value="Transparent" />
|
||
<Setter Property="BorderBrush" Value="Transparent" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="FontWeight" Value="SemiBold" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="CalendarButton">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="8"
|
||
x:Name="ButtonBackground">
|
||
<ContentPresenter
|
||
HorizontalAlignment="Center"
|
||
VerticalAlignment="Center"
|
||
x:Name="ButtonContent" />
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Background" TargetName="ButtonBackground" Value="#22B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsFocused" Value="True">
|
||
<Setter Property="Background" TargetName="ButtonBackground" Value="#33B0E0FF" />
|
||
<Setter Property="BorderBrush" TargetName="ButtonBackground" Value="#B0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Calendar Day Button Style (日期按钮) -->
|
||
<Style TargetType="CalendarDayButton" x:Key="GlassCalendarDayButton">
|
||
<Setter Property="Background" Value="Transparent" />
|
||
<Setter Property="BorderBrush" Value="Transparent" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="FontWeight" Value="Normal" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="CalendarDayButton">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="8"
|
||
x:Name="ButtonBackground">
|
||
<ContentPresenter
|
||
HorizontalAlignment="Center"
|
||
VerticalAlignment="Center"
|
||
x:Name="ButtonContent" />
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsMouseOver" Value="True">
|
||
<Setter Property="Background" TargetName="ButtonBackground" Value="#22B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsSelected" Value="True">
|
||
<Setter Property="Background" TargetName="ButtonBackground" Value="#33B0E0FF" />
|
||
<Setter Property="BorderBrush" TargetName="ButtonBackground" Value="#B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsToday" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="ButtonBackground" Value="#B0E0FF" />
|
||
</Trigger>
|
||
<Trigger Property="IsEnabled" Value="False">
|
||
<Setter Property="Opacity" TargetName="ButtonBackground" Value="0.4" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- Calendar Style (应用所有按钮样式) -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="Calendar"
|
||
x:Key="GlassCalendar">
|
||
<Setter Property="Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="BorderThickness" Value="0" />
|
||
<Setter Property="FontSize" Value="13" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="Calendar">
|
||
<CalendarItem
|
||
Background="Transparent"
|
||
BorderThickness="0"
|
||
Foreground="{TemplateBinding Foreground}"
|
||
x:Name="PART_CalendarItem">
|
||
<CalendarItem.Resources>
|
||
<Style BasedOn="{StaticResource GlassCalendarNavButton}" TargetType="Button" />
|
||
<Style BasedOn="{StaticResource GlassCalendarRepeatButton}" TargetType="RepeatButton" />
|
||
<Style BasedOn="{StaticResource GlassCalendarButton}" TargetType="CalendarButton" />
|
||
<Style BasedOn="{StaticResource GlassCalendarDayButton}" TargetType="CalendarDayButton" />
|
||
</CalendarItem.Resources>
|
||
</CalendarItem>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- DatePickerTextBox 美化 -->
|
||
<Style TargetType="DatePickerTextBox" x:Key="GlassDatePickerTextBox">
|
||
<Setter Property="Background" Value="#10FFFFFF" />
|
||
<Setter Property="BorderBrush" Value="#B0E0FF" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Padding" Value="8,4" />
|
||
<Setter Property="FontSize" Value="14" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="DatePickerTextBox">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="{TemplateBinding BorderThickness}"
|
||
CornerRadius="6"
|
||
x:Name="Bd">
|
||
<ScrollViewer
|
||
Background="Transparent"
|
||
Margin="0"
|
||
x:Name="PART_ContentHost" />
|
||
</Border>
|
||
<ControlTemplate.Triggers>
|
||
<Trigger Property="IsKeyboardFocused" Value="True">
|
||
<Setter Property="BorderBrush" TargetName="Bd" Value="#33B0E0FF" />
|
||
<Setter Property="Background" TargetName="Bd" Value="#22B0E0FF" />
|
||
</Trigger>
|
||
</ControlTemplate.Triggers>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
|
||
<!-- DatePicker Style (应用美化TextBox, 不使用TextBoxStyle属性) -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="DatePicker"
|
||
x:Key="GlassDatePicker">
|
||
<Setter Property="Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="CalendarStyle" Value="{StaticResource GlassCalendar}" />
|
||
<Setter Property="Foreground" Value="{StaticResource PrimaryTextBrush}" />
|
||
<Setter Property="IsTodayHighlighted" Value="True" />
|
||
<Setter Property="SelectedDateFormat" Value="Short" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="DatePicker">
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="#B0E0FF"
|
||
BorderThickness="2"
|
||
CornerRadius="8"
|
||
x:Name="PART_Root">
|
||
<Grid>
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="*" />
|
||
<ColumnDefinition Width="Auto" />
|
||
</Grid.ColumnDefinitions>
|
||
<DatePickerTextBox
|
||
Background="Transparent"
|
||
BorderThickness="0"
|
||
Focusable="{TemplateBinding Focusable}"
|
||
Foreground="{TemplateBinding Foreground}"
|
||
Grid.Column="0"
|
||
HorizontalContentAlignment="Left"
|
||
Margin="8,0,0,0"
|
||
Style="{StaticResource GlassDatePickerTextBox}"
|
||
VerticalContentAlignment="Center"
|
||
x:Name="PART_TextBox" />
|
||
<Button
|
||
Grid.Column="1"
|
||
Height="32"
|
||
Margin="0,0,2,0"
|
||
Padding="0"
|
||
Style="{StaticResource GlassButton}"
|
||
VerticalAlignment="Center"
|
||
Width="32"
|
||
x:Name="PART_Button">
|
||
<Path
|
||
Data="M2,4 H18 V16 H2 V4 M5,0 V8 M15,0 V8 M2,8 H18"
|
||
Height="16"
|
||
Stretch="Uniform"
|
||
Stroke="#B0E0FF"
|
||
StrokeThickness="1.5"
|
||
Width="16" />
|
||
</Button>
|
||
<Popup
|
||
AllowsTransparency="True"
|
||
IsOpen="{Binding Path=IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"
|
||
Placement="Bottom"
|
||
StaysOpen="False"
|
||
x:Name="PART_Popup">
|
||
<Border
|
||
Background="{StaticResource GlassGradientBrush}"
|
||
BorderBrush="#B0E0FF"
|
||
BorderThickness="2"
|
||
CornerRadius="8"
|
||
Margin="0,4,0,0">
|
||
<Calendar
|
||
Background="Transparent"
|
||
BorderThickness="0"
|
||
SelectedDate="{Binding SelectedDate, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||
Style="{StaticResource GlassCalendar}"
|
||
x:Name="PART_Calendar" />
|
||
</Border>
|
||
</Popup>
|
||
</Grid>
|
||
</Border>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
<!-- TabControl/TabItem Style 全面重写,修复内容显示和Header对齐 -->
|
||
<Style
|
||
BasedOn="{StaticResource GlassBase}"
|
||
TargetType="TabControl"
|
||
x:Key="GlassTabControl">
|
||
<Setter Property="Background" Value="{StaticResource GlassGradientBrush}" />
|
||
<Setter Property="BorderThickness" Value="1" />
|
||
<Setter Property="Padding" Value="4" />
|
||
<Setter Property="Template">
|
||
<Setter.Value>
|
||
<ControlTemplate TargetType="TabControl">
|
||
<Grid>
|
||
<TabPanel
|
||
Background="Transparent"
|
||
IsItemsHost="True"
|
||
Margin="4,4,4,0"
|
||
Panel.ZIndex="1"
|
||
x:Name="HeaderPanel" />
|
||
<Border
|
||
Background="{TemplateBinding Background}"
|
||
BorderBrush="{TemplateBinding BorderBrush}"
|
||
BorderThickness="1"
|
||
CornerRadius="6"
|
||
Margin="0,32,0,0"
|
||
x:Name="ContentPanel">
|
||
<ContentPresenter Margin="8" x:Name="PART_SelectedContentHost" />
|
||
</Border>
|
||
</Grid>
|
||
</ControlTemplate>
|
||
</Setter.Value>
|
||
</Setter>
|
||
</Style>
|
||
</ResourceDictionary> |