Files

277 lines
11 KiB
Plaintext
Raw Permalink Normal View History

2026-04-30 11:34:41 +08:00
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="WindowTemplateKey" TargetType="{x:Type Window}">
<Border
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<AdornerDecorator>
<ContentPresenter />
</AdornerDecorator>
<ResizeGrip
x:Name="WindowResizeGrip"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
IsTabStop="false"
Visibility="Collapsed" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ResizeMode" Value="CanResizeWithGrip" />
<Condition Property="WindowState" Value="Normal" />
</MultiTrigger.Conditions>
<Setter TargetName="WindowResizeGrip" Property="Visibility" Value="Visible" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="BaseWindowControlTemplate" TargetType="{x:Type Window}">
<DockPanel LastChildFill="True">
<!-- 外边框 -->
<Border
x:Name="borderTitle"
Width="Auto"
Height="Auto"
Background="#0170cc"
CornerRadius="0,0,0,0"
DockPanel.Dock="Top">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
Name="Title"
Grid.Column="0"
Margin="20,0,2,2"
VerticalAlignment="Center"
FontSize="16"
Foreground="White"
Text="{TemplateBinding Title}" />
<StackPanel
Grid.Column="1"
HorizontalAlignment="Right"
Orientation="Horizontal">
<!-- 最小化按钮 -->
<!--
<Button
x:Name="btnMin"
Margin="2,2,2,2"
Content="M"
Style="{DynamicResource MinButtonStyle}" />
-->
<!-- 最大化按钮 -->
<!--
<Button
x:Name="btnMax"
Margin="2,2,2,2"
Content="M"
Style="{DynamicResource MaxButtonStyle}" />-->
<!-- 关闭按钮 -->
<Button
x:Name="btnClose"
Margin="2,2,2,2"
Content="🗙"
Style="{DynamicResource CloseButtonStyle2}" />
</StackPanel>
</Grid>
</Border>
<Border
Width="Auto"
Height="Auto"
Background="{TemplateBinding Background}"
BorderBrush="LightGray"
BorderThickness="2"
CornerRadius="0,0,4,4"
DockPanel.Dock="Top">
<AdornerDecorator>
<ContentPresenter />
</AdornerDecorator>
</Border>
</DockPanel>
</ControlTemplate>
<Style x:Key="BaseWindowStyle" TargetType="{x:Type Window}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="Template" Value="{StaticResource BaseWindowControlTemplate}" />
<Setter Property="AllowsTransparency" Value="True" />
<Setter Property="WindowStyle" Value="None" />
<Setter Property="BorderBrush" Value="#FF7097D0" />
<Setter Property="BorderThickness" Value="4,4,4,4" />
<Style.Triggers>
<Trigger Property="ResizeMode" Value="CanResizeWithGrip">
<Setter Property="Template" Value="{StaticResource WindowTemplateKey}" />
</Trigger>
</Style.Triggers>
</Style>
<!-- 最小化按钮 -->
<Style x:Key="MinButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="Black" />
<!-- 修改模板属性 -->
<Setter Property="Template">
<Setter.Value>
<!-- 控件模板 -->
<ControlTemplate TargetType="Button">
<!-- 背景色 -->
<Border
x:Name="back"
Margin="1"
Padding="2,0,0,0"
Background="#FFFFE9C9"
BorderBrush="#FFCDA05F"
BorderThickness="1"
CornerRadius="0"
Opacity="0.8">
<!-- 按钮内容 -->
<Path
x:Name="cp"
Width="12"
Height="12"
Fill="Black"
Stroke="#FFCEA15F"
StrokeThickness="3">
<Path.Data>
<PathGeometry Figures="M 0,6 H 6,6 " />
</Path.Data>
</Path>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="back" Property="Background" Value="#FFD4BD9B" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="back" Property="Background" Value="#FFCDA05F" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 最大化按钮 -->
<Style x:Key="MaxButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="Black" />
<!-- 修改模板属性 -->
<Setter Property="Template">
<Setter.Value>
<!-- 控件模板 -->
<ControlTemplate TargetType="Button">
<!-- 背景色 -->
<Border
x:Name="back"
Margin="1"
Padding="2,0,0,0"
Background="#FFFFE9C9"
BorderBrush="#FFCDA05F"
BorderThickness="1"
CornerRadius="0"
Opacity="0.8">
<!-- 按钮内容 -->
<Path
x:Name="cp"
Width="12"
Height="12"
Stroke="#FFCEA15F"
StrokeThickness="3">
<Path.Data>
<PathGeometry Figures="M 0,0 L 0,12 12,12 12,0 0,0" />
</Path.Data>
</Path>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="back" Property="Background" Value="#FFD4BD9B" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="back" Property="Background" Value="#FFCDA05F" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 关闭按钮 -->
<Style x:Key="CloseButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Foreground" Value="Black" />
<!-- 修改模板属性 -->
<Setter Property="Template">
<Setter.Value>
<!-- 控件模板 -->
<ControlTemplate TargetType="Button">
<!-- 背景色 -->
<Border
x:Name="back"
Width="30"
Height="30"
Margin="0,0"
Padding="0,0,0,0"
BorderThickness="1"
CornerRadius="0">
<!-- 按钮内容 -->
<Path
x:Name="cp"
Width="12"
Height="12"
Stroke="White"
StrokeThickness="2">
<Path.Data>
<PathGeometry Figures="M 0,0 L 12,12 M 0,12 L 12,0" />
</Path.Data>
</Path>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="back" Property="Background" Value="DarkRed" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="back" Property="Background" Value="DarkRed" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style
x:Key="CloseButtonStyle2"
BasedOn="{StaticResource MaterialDesignFlatMidBgButton}"
TargetType="Button">
<Setter Property="Width" Value="32" />
<Setter Property="Height" Value="32" />
<Setter Property="Padding" Value="0" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="DarkRed" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Cursor" Value="Hand" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>