添加 MX-PD-盘古 项目文件

将 MX-PD-盘古 - new 目录下的所有文件添加到主仓库
This commit is contained in:
Shi.Ji
2026-05-18 11:43:09 +08:00
parent 03632a379d
commit e31d3560bb
739 changed files with 99783 additions and 0 deletions

View File

@@ -0,0 +1,555 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- 定义颜色,方便统一管理和修改 -->
<!-- 启动按钮色 (Primary Green) -->
<SolidColorBrush x:Key="PrimaryGreen" Color="#28A745"/>
<SolidColorBrush x:Key="PrimaryGreenHover" Color="#218838"/>
<SolidColorBrush x:Key="PrimaryGreenPressed" Color="#1E7E34"/>
<!-- 关闭按钮色 (Danger Red) -->
<SolidColorBrush x:Key="DangerRed" Color="#DC3545"/>
<SolidColorBrush x:Key="DangerRedHover" Color="#C82333"/>
<SolidColorBrush x:Key="DangerRedPressed" Color="#BD2130"/>
<!-- 复位按钮色 (Secondary Gray) -->
<SolidColorBrush x:Key="SecondaryGray" Color="#6C757D"/>
<SolidColorBrush x:Key="SecondaryGrayHover" Color="#5A6268"/>
<SolidColorBrush x:Key="SecondaryGrayPressed" Color="#4E555B"/>
<!-- 保存按钮色 (Primary Blue) -->
<SolidColorBrush x:Key="SaveBlue" Color="#007BFF"/>
<SolidColorBrush x:Key="SaveBlueHover" Color="#0069D9"/>
<SolidColorBrush x:Key="SaveBluePressed" Color="#0062CC"/>
<!-- 测试按钮色 (Info Blue/Cyan) -->
<SolidColorBrush x:Key="InfoBlue" Color="#17A2B8"/>
<SolidColorBrush x:Key="InfoBlueHover" Color="#138496"/>
<SolidColorBrush x:Key="InfoBluePressed" Color="#117A8B"/>
<!-- 设置按钮色 (Light Gray) -->
<SolidColorBrush x:Key="LightGray" Color="#F8F9FA"/>
<SolidColorBrush x:Key="LightGrayHover" Color="#E2E6EA"/>
<SolidColorBrush x:Key="LightGrayPressed" Color="#DAE0E5"/>
<SolidColorBrush x:Key="DarkText" Color="#343A40"/>
<!-- 设置按钮的文字颜色 -->
<!-- 禁用状态颜色 -->
<SolidColorBrush x:Key="DisabledBackground" Color="#E9ECEF"/>
<SolidColorBrush x:Key="DisabledForeground" Color="#6C757D"/>
<!-- 基础按钮样式 - 包含圆角模板和通用行为 -->
<Style x:Key="BaseRoundedButtonStyle" TargetType="Button">
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="5,2"/>
<Setter Property="Margin" Value="10,5"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Width" Value="100"/>
<Setter Property="Height" Value="35"/>
<!-- 移除按钮聚焦时的虚线框 -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4">
<!-- 圆角半径 -->
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<!-- 禁用状态效果 -->
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="border" Property="Background" Value="{StaticResource DisabledBackground}"/>
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
<Setter Property="Cursor" Value="Arrow"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ClearStatsButtonStyle" TargetType="Button">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Foreground" Value="#9CA3AF"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ContentPresenter />
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="#DC2626"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Foreground" Value="#B91C1C"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 启动按钮样式 -->
<Style x:Key="StartButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource PrimaryGreen}"/>
<Setter Property="BorderBrush" Value="{StaticResource PrimaryGreen}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource PrimaryGreenHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource PrimaryGreenHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource PrimaryGreenPressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource PrimaryGreenPressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 复位按钮样式 -->
<Style x:Key="ResetButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource SecondaryGray}"/>
<Setter Property="BorderBrush" Value="{StaticResource SecondaryGray}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource SecondaryGrayHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource SecondaryGrayHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource SecondaryGrayPressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource SecondaryGrayPressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 关闭按钮样式 -->
<Style x:Key="CloseButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource DangerRed}"/>
<Setter Property="BorderBrush" Value="{StaticResource DangerRed}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource DangerRedHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource DangerRedHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource DangerRedPressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource DangerRedPressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 保存按钮样式 -->
<Style x:Key="SaveButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource SaveBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource SaveBlue}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource SaveBlueHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource SaveBlueHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource SaveBluePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource SaveBluePressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 测试按钮样式 -->
<Style x:Key="TestButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource InfoBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource InfoBlue}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource InfoBlueHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource InfoBlueHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource InfoBluePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource InfoBluePressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 设置按钮样式 -->
<Style x:Key="SettingsButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource LightGray}"/>
<Setter Property="BorderBrush" Value="{StaticResource LightGray}"/>
<Setter Property="Foreground" Value="{StaticResource DarkText}"/>
<!-- 浅色背景需要深色文字 -->
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource LightGrayHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource LightGrayHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource LightGrayPressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource LightGrayPressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 普通按钮样式 -->
<Style x:Key="Button" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
<Setter Property="Width" Value="110"/>
<Setter Property="Height" Value="30"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style x:Key="iconButton" TargetType="Button">
<Setter Property="Padding" Value="10,5"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Width" Value="85"/>
<Setter Property="Height" Value="35"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="Background" Value="#F7FBFF"/>
<Setter Property="BorderBrush" Value="LightGray"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="10">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#DFE8F0"/>
<!-- 浅蓝色背景 -->
<Setter Property="BorderBrush" Value="#3A8DFF"/>
<!-- 蓝色边框 -->
<Setter Property="Cursor" Value="Hand"/>
<!-- 鼠标改为手指形状 -->
</Trigger>
<!-- 鼠标点击时的样式 -->
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#DCEBF9"/>
<!-- 深蓝色背景 -->
<Setter Property="BorderBrush" Value="#1A7CE0"/>
<!-- 深蓝色边框 -->
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 停止按钮色 (Stop Red) -->
<SolidColorBrush x:Key="StopRed" Color="#B24B48"/>
<SolidColorBrush x:Key="StopRedHover" Color="#9F413F"/>
<SolidColorBrush x:Key="StopRedPressed" Color="#873635"/>
<!-- 停止按钮样式 -->
<Style x:Key="StopButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource StopRed}"/>
<Setter Property="BorderBrush" Value="{StaticResource StopRed}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource StopRedHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource StopRedHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource StopRedPressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource StopRedPressed}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
<Setter Property="Cursor" Value="Arrow"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 示教按钮色 (Teach Orange) -->
<SolidColorBrush x:Key="TeachOrange" Color="#FD7E14"/>
<SolidColorBrush x:Key="TeachOrangeHover" Color="#E36C09"/>
<SolidColorBrush x:Key="TeachOrangePressed" Color="#CA5D04"/>
<!-- 示教按钮样式 -->
<Style x:Key="TeachButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource TeachOrange}"/>
<Setter Property="BorderBrush" Value="{StaticResource TeachOrange}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource TeachOrangeHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangeHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource TeachOrangePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource TeachOrangePressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- ========================================== -->
<!-- 新增样式:模板制作 & 视觉参数设置 -->
<!-- ========================================== -->
<!-- 模板制作按钮色 (Template Purple) -->
<SolidColorBrush x:Key="TemplatePurple" Color="#6F42C1"/>
<SolidColorBrush x:Key="TemplatePurpleHover" Color="#59359A"/>
<SolidColorBrush x:Key="TemplatePurplePressed" Color="#4A2C81"/>
<!-- 模板制作按钮样式 -->
<Style x:Key="TemplateButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource TemplatePurple}"/>
<Setter Property="BorderBrush" Value="{StaticResource TemplatePurple}"/>
<!-- 可以在这里添加特定的图标或不同的大小设置,如果需要的话 -->
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource TemplatePurpleHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource TemplatePurpleHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource TemplatePurplePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource TemplatePurplePressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 视觉参数按钮色 (Vision Teal) -->
<SolidColorBrush x:Key="VisionTeal" Color="#20C997"/>
<SolidColorBrush x:Key="VisionTealHover" Color="#1BA87E"/>
<SolidColorBrush x:Key="VisionTealPressed" Color="#168C69"/>
<!-- 视觉参数按钮样式 -->
<Style x:Key="VisionButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource VisionTeal}"/>
<Setter Property="BorderBrush" Value="{StaticResource VisionTeal}"/>
<!-- 视觉参数设置可能不需要太宽,或者需要更显眼 -->
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource VisionTealHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource VisionTealHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource VisionTealPressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource VisionTealPressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- ========================================== -->
<!-- 新增样式:通用按钮 (Common/Primary) -->
<!-- ========================================== -->
<!-- 通用按钮色 (General Blue) -->
<SolidColorBrush x:Key="GeneralBlue" Color="#E8E8F0"/>
<SolidColorBrush x:Key="GeneralBlueHover" Color="#B3D2EA"/>
<SolidColorBrush x:Key="GeneralBluePressed" Color="#6A92B2"/>
<!-- 通用按钮样式 -->
<Style x:Key="CommonButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource GeneralBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource GeneralBlue}"/>
<Setter Property="Foreground" Value="#5F5F5F"/>
<Setter Property="BorderBrush" Value="#B0B9C4"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource GeneralBlueHover}"/>
<Setter Property="BorderBrush" Value="#1567D5"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource GeneralBluePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource GeneralBluePressed}"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
<SolidColorBrush x:Key="MarkActionBlue" Color="#2E5FA7"/>
<SolidColorBrush x:Key="MarkActionBlueHover" Color="#264F8A"/>
<SolidColorBrush x:Key="MarkActionBluePressed" Color="#1F4274"/>
<SolidColorBrush x:Key="MarkActionSlate" Color="#5C6F88"/>
<SolidColorBrush x:Key="MarkActionSlateHover" Color="#4D5E75"/>
<SolidColorBrush x:Key="MarkActionSlatePressed" Color="#404F63"/>
<SolidColorBrush x:Key="MarkActionOutlineBorder" Color="#D5DFEB"/>
<SolidColorBrush x:Key="MarkActionOutlineForeground" Color="#32507A"/>
<SolidColorBrush x:Key="MarkActionOutlineHover" Color="#EEF4FB"/>
<SolidColorBrush x:Key="MarkActionOutlinePressed" Color="#E0EBF8"/>
<SolidColorBrush x:Key="MarkDangerOutlineBorder" Color="#F0B8BE"/>
<SolidColorBrush x:Key="MarkDangerOutlineForeground" Color="#D95B69"/>
<SolidColorBrush x:Key="MarkDangerOutlineHover" Color="#FFF3F4"/>
<SolidColorBrush x:Key="MarkDangerOutlinePressed" Color="#FDE7E9"/>
<Style x:Key="MarkPrimaryActionButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Width" Value="105"/>
<Setter Property="Height" Value="40"/>
<Setter Property="Padding" Value="16,0"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Background" Value="{StaticResource MarkActionBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionBlue}"/>
<Setter Property="Foreground" Value="White"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource MarkActionBlueHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionBlueHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource MarkActionBluePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionBluePressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="MarkNeutralActionButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Width" Value="105"/>
<Setter Property="Height" Value="40"/>
<Setter Property="Padding" Value="16,0"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Background" Value="{StaticResource MarkActionSlate}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionSlate}"/>
<Setter Property="Foreground" Value="White"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource MarkActionSlateHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionSlateHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource MarkActionSlatePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionSlatePressed}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="MarkOutlineActionButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Width" Value="105"/>
<Setter Property="Height" Value="40"/>
<Setter Property="Padding" Value="16,0"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionOutlineBorder}"/>
<Setter Property="Foreground" Value="{StaticResource MarkActionOutlineForeground}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource MarkActionOutlineHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionBlue}"/>
<Setter Property="Foreground" Value="{StaticResource MarkActionBlue}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource MarkActionOutlinePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkActionBlue}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="MarkDangerOutlineButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Width" Value="105"/>
<Setter Property="Height" Value="40"/>
<Setter Property="Padding" Value="16,0"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Background" Value="White"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkDangerOutlineBorder}"/>
<Setter Property="Foreground" Value="{StaticResource MarkDangerOutlineForeground}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource MarkDangerOutlineHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkDangerOutlineForeground}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource MarkDangerOutlinePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource MarkDangerOutlineForeground}"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- 物流页面按钮样式 -->
<Style x:Key="LogisticsActionButtonStyle" TargetType="Button" BasedOn="{StaticResource SaveButtonStyle}">
<Setter Property="Width" Value="220"/>
<Setter Property="Height" Value="40"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,0,0,0"/>
</Style>
<Style x:Key="LogisticsOutlineActionButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Width" Value="220"/>
<Setter Property="Height" Value="40"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,0,0,0"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="#2455C7"/>
<Setter Property="BorderBrush" Value="#2455C7"/>
<Setter Property="BorderThickness" Value="2"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#EDF4FF"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#DCE9FF"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="LogisticsWarningActionButtonStyle" TargetType="Button" BasedOn="{StaticResource TeachButtonStyle}">
<Setter Property="Width" Value="220"/>
<Setter Property="Height" Value="40"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,0,0,0"/>
</Style>
<Style x:Key="LogisticsSecondaryButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Width" Value="220"/>
<Setter Property="Height" Value="36"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,8,0,0"/>
<Setter Property="Background" Value="#F7F2F2"/>
<Setter Property="Foreground" Value="#D04A4A"/>
<Setter Property="BorderBrush" Value="#E4CED1"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FDECEC"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#F8DFDF"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="LogisticsScanButtonStyle" TargetType="Button" BasedOn="{StaticResource CommonButtonStyle}">
<Setter Property="Width" Value="220"/>
<Setter Property="Height" Value="42"/>
<Setter Property="Margin" Value="0,8,0,6"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="Background" Value="#1A2A47"/>
<Setter Property="BorderBrush" Value="#1A2A47"/>
<Setter Property="Foreground" Value="White"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#22375B"/>
<Setter Property="BorderBrush" Value="#22375B"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#172C4A"/>
<Setter Property="BorderBrush" Value="#172C4A"/>
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>

View File

@@ -0,0 +1,21 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<!-- NumberBox 数值限制 -->
<sys:Double x:Key="CarrierWidthMin">50</sys:Double>
<sys:Double x:Key="CarrierWidthMax">600</sys:Double>
<sys:Double x:Key="CarrierHeightMin">50</sys:Double>
<sys:Double x:Key="CarrierHeightMax">600</sys:Double>
<sys:Double x:Key="CarrierThicknessMin">0</sys:Double>
<sys:Double x:Key="CarrierThicknessMax">100</sys:Double>
<sys:Double x:Key="SubstrateWidthMin">20</sys:Double>
<sys:Double x:Key="SubstrateWidthMax">600</sys:Double>
<sys:Double x:Key="SubstrateHeightMin">20</sys:Double>
<sys:Double x:Key="SubstrateHeightMax">600</sys:Double>
<sys:String x:Key="SubstrateThicknessMin">0</sys:String>
<sys:String x:Key="SubstrateThicknessMax">50</sys:String>
<sys:String x:Key="WaferWidthMin">5</sys:String>
<sys:String x:Key="WaferWidthMax">300</sys:String>
<sys:String x:Key="WaferHeightMin">5</sys:String>
<sys:String x:Key="WaferHeightMax">300</sys:String>
</ResourceDictionary>

View File

@@ -0,0 +1,467 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mw="http://www.maxwell-gp.com/">
<SolidColorBrush x:Key="ProcessPageBackgroundBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="ProcessCardBackgroundBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="ProcessCardBorderBrush" Color="#D6DFEA"/>
<SolidColorBrush x:Key="ProcessHeaderAccentBrush" Color="#1F5EA8"/>
<SolidColorBrush x:Key="ProcessInnerZoneBackgroundBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="ProcessTitleForegroundBrush" Color="#1F2D3D"/>
<SolidColorBrush x:Key="ProcessBodyForegroundBrush" Color="#334155"/>
<SolidColorBrush x:Key="ProcessHeaderBackgroundBrush" Color="#D9E0E7"/>
<SolidColorBrush x:Key="ProcessDividerBrush" Color="#EDF1F5"/>
<SolidColorBrush x:Key="ProcessSwitchOffBrush" Color="#D5DEE8"/>
<SolidColorBrush x:Key="ProcessSwitchThumbBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="ProcessNormalBrush" Color="#2FA84F"/>
<SolidColorBrush x:Key="ProcessWarningBrush" Color="#F08A24"/>
<SolidColorBrush x:Key="ProcessDangerBrush" Color="#E24A4A"/>
<Style x:Key="ProcessPageContentGroupBoxStyle" TargetType="GroupBox" BasedOn="{StaticResource {x:Type GroupBox}}">
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource ProcessTitleForegroundBrush}"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Padding" Value="16,18,16,16"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="34"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="{StaticResource ProcessHeaderBackgroundBrush}" BorderBrush="{StaticResource ProcessCardBorderBrush}" BorderThickness="0,0,0,1" CornerRadius="3,3,0,0">
<ContentPresenter ContentSource="Header" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="12,0" RecognizesAccessKey="True"/>
</Border>
<Border Grid.Row="1" Background="{StaticResource ProcessCardBackgroundBrush}" Padding="{TemplateBinding Padding}" CornerRadius="0,0,3,3">
<ContentPresenter/>
</Border>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ProcessCardGroupBoxStyle" TargetType="GroupBox" BasedOn="{StaticResource {x:Type GroupBox}}">
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource ProcessTitleForegroundBrush}"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Margin" Value="0,0,0,18"/>
<Setter Property="Padding" Value="22,18,22,18"/>
<Setter Property="Width" Value="Auto"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="38"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="{StaticResource ProcessHeaderBackgroundBrush}" BorderBrush="{StaticResource ProcessCardBorderBrush}" BorderThickness="0,0,0,1" CornerRadius="3,3,0,0">
<ContentPresenter ContentSource="Header" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="12,0" RecognizesAccessKey="True"/>
</Border>
<Border Grid.Row="1" Background="{StaticResource ProcessCardBackgroundBrush}" Padding="{TemplateBinding Padding}" CornerRadius="0,0,3,3">
<ContentPresenter/>
</Border>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ProcessWideCardGroupBoxStyle" TargetType="GroupBox" BasedOn="{StaticResource ProcessCardGroupBoxStyle}">
<Setter Property="Width" Value="Auto"/>
</Style>
<Style x:Key="ProcessNavigationListBoxStyle" TargetType="ListBox" BasedOn="{StaticResource {x:Type ListBox}}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ListBoxItem">
<Setter Property="Margin" Value="0,0,0,6"/>
<Setter Property="Padding" Value="5,4"/>
<Setter Property="Foreground" Value="{StaticResource ProcessTitleForegroundBrush}"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="ItemBorder" Background="#F5F7FA" BorderBrush="{StaticResource ProcessCardBorderBrush}" BorderThickness="1" CornerRadius="4" Padding="{TemplateBinding Padding}">
<ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Left"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="Background" Value="#EAF2FA"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="Background" Value="#DCEBF8"/>
<Setter TargetName="ItemBorder" Property="BorderBrush" Value="{StaticResource ProcessHeaderAccentBrush}"/>
<Setter Property="Foreground" Value="{StaticResource ProcessHeaderAccentBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ProcessCardStyle" TargetType="Border">
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0,0,18,14"/>
<Setter Property="Width" Value="470"/>
<Setter Property="VerticalAlignment" Value="Top"/>
</Style>
<Style x:Key="ProcessWideCardStyle" TargetType="Border" BasedOn="{StaticResource ProcessCardStyle}">
<Setter Property="Width" Value="820"/>
</Style>
<Style x:Key="ProcessSectionStyle" TargetType="Border">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="CornerRadius" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0,0,0,18"/>
</Style>
<Style x:Key="ProcessSectionHeaderContainerStyle" TargetType="Border">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="2,0,0,0"/>
<Setter Property="Margin" Value="2,0,0,10"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
</Style>
<Style x:Key="ProcessSectionHeaderTextStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{StaticResource ProcessHeaderAccentBrush}"/>
</Style>
<Style x:Key="ProcessCardHeaderBarStyle" TargetType="Border">
<Setter Property="Background" Value="#EEF2F6"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="0,0,0,1"/>
<Setter Property="CornerRadius" Value="8,8,0,0"/>
<Setter Property="Padding" Value="16,10,12,10"/>
</Style>
<Style x:Key="ProcessCardHeaderTextStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{StaticResource ProcessHeaderAccentBrush}"/>
</Style>
<Style x:Key="ProcessFunctionZoneStyle" TargetType="Border">
<Setter Property="Background" Value="{StaticResource ProcessInnerZoneBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="CornerRadius" Value="0,0,8,8"/>
<Setter Property="Padding" Value="16,14,16,14"/>
<Setter Property="Margin" Value="0"/>
</Style>
<Style x:Key="ProcessNormalZoneStyle" TargetType="Border" BasedOn="{StaticResource ProcessFunctionZoneStyle}">
</Style>
<Style x:Key="ProcessWarningZoneStyle" TargetType="Border" BasedOn="{StaticResource ProcessFunctionZoneStyle}">
</Style>
<Style x:Key="ProcessDangerZoneStyle" TargetType="Border" BasedOn="{StaticResource ProcessFunctionZoneStyle}">
</Style>
<Style x:Key="ProcessLabelStyle" TargetType="Label" BasedOn="{StaticResource {x:Type Label}}">
<Setter Property="Width" Value="120"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,0,10,0"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{StaticResource ProcessBodyForegroundBrush}"/>
</Style>
<Style x:Key="ProcessToggleStyle" TargetType="ToggleButton" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Height" Value="28"/>
<Setter Property="Width" Value="Auto"/>
<Setter Property="MinWidth" Value="138"/>
<Setter Property="Margin" Value="0,4,18,4"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="HorizontalAlignment" Value="Left"/>
<Setter Property="Foreground" Value="{StaticResource ProcessTitleForegroundBrush}"/>
<Setter Property="Background" Value="{StaticResource ProcessSwitchOffBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessSwitchOffBrush}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" TextWrapping="Wrap"/>
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="54"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid x:Name="SwitchRoot" Grid.Column="0" Width="54" Height="22">
<Border x:Name="Track"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1"
CornerRadius="11"/>
<Ellipse x:Name="Thumb"
Fill="{StaticResource ProcessSwitchThumbBrush}"
Width="18"
Height="18"
HorizontalAlignment="Left"
Margin="2,0,0,0"/>
</Grid>
<ContentPresenter Grid.Column="1"
Margin="8,0,0,0"
VerticalAlignment="Center"
HorizontalAlignment="Left"
RecognizesAccessKey="True"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Track" Property="Background" Value="{StaticResource ProcessNormalBrush}"/>
<Setter TargetName="Track" Property="BorderBrush" Value="{StaticResource ProcessNormalBrush}"/>
<Setter TargetName="Thumb" Property="Margin" Value="34,0,0,0"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="SwitchRoot" Property="Opacity" Value="0.45"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ProcessSmallToggleStyle" TargetType="ToggleButton" BasedOn="{StaticResource ProcessToggleStyle}">
<Setter Property="MinWidth" Value="120"/>
</Style>
<Style x:Key="ProcessParameterRowStyle" TargetType="StackPanel">
<Setter Property="Orientation" Value="Horizontal"/>
<Setter Property="Margin" Value="0,0,0,10"/>
</Style>
<Style x:Key="ProcessComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
<Setter Property="Width" Value="190"/>
<Setter Property="Height" Value="32"/>
<Setter Property="Margin" Value="8,0,0,0"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
</Style>
<Style x:Key="ProcessLargeComboBoxStyle" TargetType="ComboBox" BasedOn="{StaticResource ProcessComboBoxStyle}">
<Setter Property="Width" Value="120"/>
</Style>
<Style x:Key="ProcessNumberBoxStyle" TargetType="{x:Type mw:NumberBox}" BasedOn="{StaticResource {x:Type mw:NumberBox}}">
<Setter Property="Width" Value="110"/>
<Setter Property="Height" Value="32"/>
<Setter Property="Margin" Value="8,4,0,2"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
</Style>
<Style x:Key="ProcessIntNumberBoxStyle" TargetType="{x:Type mw:IntNumberBox}" BasedOn="{StaticResource {x:Type mw:IntNumberBox}}">
<Setter Property="Width" Value="110"/>
<Setter Property="Height" Value="32"/>
<Setter Property="Margin" Value="8,0,0,0"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
</Style>
<Style x:Key="ProcessLargeIntNumberBoxStyle" TargetType="{x:Type mw:IntNumberBox}" BasedOn="{StaticResource ProcessIntNumberBoxStyle}">
<Setter Property="Width" Value="120"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
<Style x:Key="ProcessLargeNumberBoxStyle" TargetType="{x:Type mw:NumberBox}" BasedOn="{StaticResource ProcessNumberBoxStyle}">
<Setter Property="Width" Value="120"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
<Style x:Key="ProcessTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Height" Value="32"/>
<Setter Property="MinWidth" Value="120"/>
<Setter Property="Margin" Value="8,0,0,0"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="10,0"/>
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="Foreground" Value="{StaticResource ProcessBodyForegroundBrush}"/>
</Style>
<Style x:Key="ProcessReadOnlyValueBorderStyle" TargetType="Border">
<Setter Property="Background" Value="#F8FAFC"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="4"/>
<Setter Property="Padding" Value="12,6"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<Style x:Key="ProcessReadOnlyValueTextStyle" TargetType="TextBlock">
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{StaticResource ProcessBodyForegroundBrush}"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextWrapping" Value="Wrap"/>
</Style>
<Style x:Key="ProcessCameraHostBorderStyle" TargetType="Border">
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="6"/>
<Setter Property="Margin" Value="4,4,8,4"/>
<Setter Property="Padding" Value="4"/>
</Style>
<Style x:Key="ProcessDataGridStyle" TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}">
<Setter Property="Margin" Value="0"/>
<Setter Property="AutoGenerateColumns" Value="False"/>
<Setter Property="CanUserAddRows" Value="False"/>
<Setter Property="CanUserDeleteRows" Value="False"/>
<Setter Property="CanUserResizeRows" Value="False"/>
<Setter Property="HeadersVisibility" Value="Column"/>
<Setter Property="GridLinesVisibility" Value="Horizontal"/>
<Setter Property="RowBackground" Value="#FFFFFF"/>
<Setter Property="AlternatingRowBackground" Value="#F8FAFC"/>
<Setter Property="HorizontalGridLinesBrush" Value="{StaticResource ProcessDividerBrush}"/>
<Setter Property="VerticalGridLinesBrush" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource ProcessBodyForegroundBrush}"/>
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="RowHeaderWidth" Value="0"/>
<Setter Property="ColumnHeaderStyle">
<Setter.Value>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="#EEF2F6"/>
<Setter Property="Foreground" Value="{StaticResource ProcessHeaderAccentBrush}"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Padding" Value="10,8"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="0,0,0,1"/>
</Style>
</Setter.Value>
</Setter>
<Setter Property="CellStyle">
<Setter.Value>
<Style TargetType="DataGridCell">
<Setter Property="Padding" Value="10,8"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Foreground" Value="{StaticResource ProcessBodyForegroundBrush}"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#DCEBF8"/>
<Setter Property="Foreground" Value="{StaticResource ProcessHeaderAccentBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ProcessTabControlStyle" TargetType="TabControl" BasedOn="{StaticResource {x:Type TabControl}}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabControl">
<Grid KeyboardNavigation.TabNavigation="Local">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TabPanel Grid.Row="0" Panel.ZIndex="1" IsItemsHost="True" Margin="0,0,0,8"/>
<Border Grid.Row="1" Background="{StaticResource ProcessCardBackgroundBrush}" BorderBrush="{StaticResource ProcessCardBorderBrush}" BorderThickness="1" CornerRadius="6" Padding="8">
<ContentPresenter ContentSource="SelectedContent"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="TabItem">
<Setter Property="Foreground" Value="{StaticResource ProcessBodyForegroundBrush}"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border x:Name="TabBorder" Background="#F5F7FA" BorderBrush="{StaticResource ProcessCardBorderBrush}" BorderThickness="1" CornerRadius="6,6,0,0" Padding="16,8" Margin="0,0,6,0">
<ContentPresenter ContentSource="Header" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="TabBorder" Property="Background" Value="#DCEBF8"/>
<Setter TargetName="TabBorder" Property="BorderBrush" Value="{StaticResource ProcessHeaderAccentBrush}"/>
<Setter Property="Foreground" Value="{StaticResource ProcessHeaderAccentBrush}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="TabBorder" Property="Background" Value="#EAF2FA"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ProcessUnitTextStyle" TargetType="TextBlock">
<Setter Property="Margin" Value="14,0,0,0"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="#9AA8BB"/>
</Style>
<Style x:Key="ProcessDividerStyle" TargetType="Border">
<Setter Property="Height" Value="1"/>
<Setter Property="Background" Value="{StaticResource ProcessDividerBrush}"/>
<Setter Property="Margin" Value="0,8,0,18"/>
</Style>
</ResourceDictionary>

View File

@@ -0,0 +1,827 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:cv="clr-namespace:MainShell.Converter"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:commonDisp="clr-namespace:MainShell.Common.Display.View" xmlns:commonViewModel="clr-namespace:MainShell.Common.Display.ViewModel" xmlns:controlAttr="clr-namespace:MainShell.Common.ControlAttribute">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/Styles/ButtonStyles.xaml"/>
<ResourceDictionary Source="/Resources/Styles/NumberLimit.xaml"/>
<ResourceDictionary Source="/Resources/Styles/ProcessParameterStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<FontFamily x:Key="ttfFont">/MainShell;component/Resources/Font/#iconfont</FontFamily>
<!-- 全局转换器 -->
<cv:DateTimeToStringConverter x:Key="DateTimeToStringConverter"/>
<cv:BoolToVisibleConverter x:Key="BoolToVisibleConverter"/>
<cv:BoolToInversionConverter x:Key="boolToInversionConverter"/>
<cv:EnumDescriptionConverter x:Key="EnumDescriptionConverter"/>
<cv:ScreenToViewModelConverter x:Key="ScreenToViewModelConverter"/>
<cv:BondingPathModeToBoolConverter x:Key="BondingPathModeToBoolConverter"/>
<cv:BondingRegionModeToBoolConverter x:Key="BondingRegionModeToBoolConverter"/>
<cv:BondingWsPathModeToBoolConverter x:Key="BondingWsPathModeToBoolConverter"/>
<cv:RunningModeEnumToBoolConverter x:Key="RunningModeToBoolConverter"/>
<cv:SubstrateHeightMeasureModeToBoolConverter x:Key="SubstrateHeightMeasureModeToBoolConverter"/>
<cv:ObjectToBoolConverter x:Key="ObjectToBoolConverter"/>
<SolidColorBrush x:Key="GlobalScrollBarTrackBackgroundBrush" Color="#F6F8FB"/>
<SolidColorBrush x:Key="GlobalScrollBarTrackBorderBrush" Color="#D7DEE8"/>
<SolidColorBrush x:Key="GlobalScrollBarButtonHoverBrush" Color="#F1F5FA"/>
<SolidColorBrush x:Key="GlobalScrollBarButtonPressedBrush" Color="#E5ECF5"/>
<SolidColorBrush x:Key="GlobalScrollBarArrowBrush" Color="#9FB0C4"/>
<SolidColorBrush x:Key="GlobalScrollBarThumbBrush" Color="#D5E1EE"/>
<SolidColorBrush x:Key="GlobalScrollBarThumbHoverBrush" Color="#C7D6E6"/>
<SolidColorBrush x:Key="GlobalScrollBarThumbPressedBrush" Color="#B8CBDF"/>
<Style x:Key="GlobalScrollBarThumbStyle" TargetType="Thumb">
<Setter Property="Background" Value="{StaticResource GlobalScrollBarThumbBrush}"/>
<Setter Property="MinHeight" Value="24"/>
<Setter Property="MinWidth" Value="24"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
<Border x:Name="ThumbBorder"
Margin="3,2"
Background="{TemplateBinding Background}"
BorderBrush="{StaticResource GlobalScrollBarTrackBorderBrush}"
BorderThickness="1"
CornerRadius="3"/>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ThumbBorder" Property="Background" Value="{StaticResource GlobalScrollBarThumbHoverBrush}"/>
</Trigger>
<Trigger Property="IsDragging" Value="True">
<Setter TargetName="ThumbBorder" Property="Background" Value="{StaticResource GlobalScrollBarThumbPressedBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="GlobalScrollBarPageButtonStyle" TargetType="RepeatButton">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Focusable" Value="False"/>
<Setter Property="IsTabStop" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RepeatButton">
<Border Background="Transparent"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="GlobalScrollBarLineButtonStyle" TargetType="RepeatButton">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Focusable" Value="False"/>
<Setter Property="IsTabStop" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RepeatButton">
<Border x:Name="ButtonBorder"
Background="{TemplateBinding Background}"
BorderBrush="{StaticResource GlobalScrollBarTrackBorderBrush}"
BorderThickness="1"
CornerRadius="2">
<Viewbox Width="6" Height="6" Stretch="Uniform">
<Path x:Name="ArrowPath"
Fill="{StaticResource GlobalScrollBarArrowBrush}"
Data="M 0 5 L 4 1 L 8 5 Z"/>
</Viewbox>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Tag" Value="Down">
<Setter TargetName="ArrowPath" Property="Data" Value="M 0 1 L 4 5 L 8 1 Z"/>
</Trigger>
<Trigger Property="Tag" Value="Left">
<Setter TargetName="ArrowPath" Property="Data" Value="M 5 0 L 1 4 L 5 8 Z"/>
</Trigger>
<Trigger Property="Tag" Value="Right">
<Setter TargetName="ArrowPath" Property="Data" Value="M 1 0 L 5 4 L 1 8 Z"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ButtonBorder" Property="Background" Value="{StaticResource GlobalScrollBarButtonHoverBrush}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="ButtonBorder" Property="Background" Value="{StaticResource GlobalScrollBarButtonPressedBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ControlTemplate x:Key="GlobalVerticalScrollBarTemplate" TargetType="ScrollBar">
<Grid Background="Transparent" SnapsToDevicePixels="True">
<Grid.RowDefinitions>
<RowDefinition Height="14"/>
<RowDefinition Height="*"/>
<RowDefinition Height="14"/>
</Grid.RowDefinitions>
<RepeatButton Grid.Row="0"
Command="ScrollBar.LineUpCommand"
Tag="Up"
Style="{StaticResource GlobalScrollBarLineButtonStyle}"/>
<Border Grid.Row="1"
Margin="2,0"
Background="{StaticResource GlobalScrollBarTrackBackgroundBrush}"
BorderBrush="{StaticResource GlobalScrollBarTrackBorderBrush}"
BorderThickness="1"
CornerRadius="3"/>
<Track x:Name="PART_Track"
Grid.Row="1"
Margin="2,0"
Focusable="False"
IsDirectionReversed="True">
<Track.DecreaseRepeatButton>
<RepeatButton Command="ScrollBar.PageUpCommand"
Style="{StaticResource GlobalScrollBarPageButtonStyle}"/>
</Track.DecreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource GlobalScrollBarThumbStyle}"/>
</Track.Thumb>
<Track.IncreaseRepeatButton>
<RepeatButton Command="ScrollBar.PageDownCommand"
Style="{StaticResource GlobalScrollBarPageButtonStyle}"/>
</Track.IncreaseRepeatButton>
</Track>
<RepeatButton Grid.Row="2"
Command="ScrollBar.LineDownCommand"
Tag="Down"
Style="{StaticResource GlobalScrollBarLineButtonStyle}"/>
</Grid>
</ControlTemplate>
<ControlTemplate x:Key="GlobalHorizontalScrollBarTemplate" TargetType="ScrollBar">
<Grid Background="Transparent" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="14"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="14"/>
</Grid.ColumnDefinitions>
<RepeatButton Grid.Column="0"
Command="ScrollBar.LineLeftCommand"
Tag="Left"
Style="{StaticResource GlobalScrollBarLineButtonStyle}"/>
<Border Grid.Column="1"
Margin="0,2"
Background="{StaticResource GlobalScrollBarTrackBackgroundBrush}"
BorderBrush="{StaticResource GlobalScrollBarTrackBorderBrush}"
BorderThickness="1"
CornerRadius="3"/>
<Track x:Name="PART_Track"
Grid.Column="1"
Margin="0,2"
Focusable="False"
IsDirectionReversed="False">
<Track.DecreaseRepeatButton>
<RepeatButton Command="ScrollBar.PageLeftCommand"
Style="{StaticResource GlobalScrollBarPageButtonStyle}"/>
</Track.DecreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource GlobalScrollBarThumbStyle}"/>
</Track.Thumb>
<Track.IncreaseRepeatButton>
<RepeatButton Command="ScrollBar.PageRightCommand"
Style="{StaticResource GlobalScrollBarPageButtonStyle}"/>
</Track.IncreaseRepeatButton>
</Track>
<RepeatButton Grid.Column="2"
Command="ScrollBar.LineRightCommand"
Tag="Right"
Style="{StaticResource GlobalScrollBarLineButtonStyle}"/>
</Grid>
</ControlTemplate>
<Style x:Key="GlobalScrollBarStyle" TargetType="ScrollBar">
<Setter Property="Width" Value="14"/>
<Setter Property="Height" Value="Auto"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Template" Value="{StaticResource GlobalVerticalScrollBarTemplate}"/>
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto"/>
<Setter Property="Height" Value="14"/>
<Setter Property="Template" Value="{StaticResource GlobalHorizontalScrollBarTemplate}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="ScrollBar" BasedOn="{StaticResource GlobalScrollBarStyle}"/>
<Style x:Key="ProcessScrollViewerStyle" TargetType="ScrollViewer" BasedOn="{StaticResource BaseStyle}">
<Setter Property="Background" Value="{StaticResource ProcessCardBackgroundBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource ProcessCardBorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource ProcessBodyForegroundBrush}"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="controlAttr:ControlBehavior.RouteDieMapMouseWheel" Value="True"/>
<!-- 现代化样式:保持 ScrollViewer 标准行为,融合全局滚动条配色 -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ScrollViewer">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="6"
SnapsToDevicePixels="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter"
Grid.Row="0" Grid.Column="0"
Margin="{TemplateBinding Padding}"
CanContentScroll="{TemplateBinding CanContentScroll}"/>
<ScrollBar x:Name="PART_VerticalScrollBar"
Grid.Row="0" Grid.Column="1"
AutomationProperties.AutomationId="VerticalScrollBar"
Cursor="Arrow"
Orientation="Vertical"
Maximum="{TemplateBinding ScrollableHeight}"
Minimum="0"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
ViewportSize="{TemplateBinding ViewportHeight}"/>
<ScrollBar x:Name="PART_HorizontalScrollBar"
Grid.Row="1" Grid.Column="0"
AutomationProperties.AutomationId="HorizontalScrollBar"
Cursor="Arrow"
Orientation="Horizontal"
Maximum="{TemplateBinding ScrollableWidth}"
Minimum="0"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"
ViewportSize="{TemplateBinding ViewportWidth}"/>
<Border x:Name="ScrollBarCorner"
Grid.Row="1"
Grid.Column="1"
Background="{StaticResource GlobalScrollBarTrackBackgroundBrush}"
BorderBrush="{StaticResource GlobalScrollBarTrackBorderBrush}"
BorderThickness="1,1,0,0"
CornerRadius="0,0,6,0"
Visibility="Collapsed"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ComputedVerticalScrollBarVisibility" Value="Visible"/>
<Condition Property="ComputedHorizontalScrollBarVisibility" Value="Visible"/>
</MultiTrigger.Conditions>
<Setter TargetName="ScrollBarCorner" Property="Visibility" Value="Visible"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 全局数据模板 -->
<DataTemplate DataType="{x:Type commonViewModel:CameraAxisViewModel}">
<commonDisp:CameraAxisView/>
</DataTemplate>
<!--画刷-->
<SolidColorBrush x:Key="PgBackground" Color="#EEEEED"/>
<SolidColorBrush x:Key="PgBorder" Color="#EEEEED"/>
<SolidColorBrush x:Key="MwGroupBoxBackground" Color="#38ABF1"/>
<!-- 基础文本样式 -->
<Style x:Key="CommonLableStyle" TargetType="Label" BasedOn="{StaticResource {x:Type Label}}">
<Setter Property="HorizontalContentAlignment" Value="Right"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Margin" Value="3"/>
<Setter Property="Height" Value="35"/>
<Setter Property="Width" Value="120"/>
</Style>
<Style x:Key="LabelStyle" TargetType="TextBlock">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Margin" Value="0,4,10,4"/>
<Setter Property="Foreground" Value="#333333"/>
</Style>
<Style x:Key="TextBlockStyle" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,4,10,4"/>
<Setter Property="Foreground" Value="#333333"/>
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
<Style x:Key="ValueStyle" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Margin" Value="0,4,0,4"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Foreground" Value="#111111"/>
</Style>
<Style x:Key="LargeTextblockStyle" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,4,0,4"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Foreground" Value="#111111"/>
</Style>
<Style x:Key="LargeBlodTextblockStyle" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,4,0,4"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Foreground" Value="#111111"/>
</Style>
<!-- GroupBox Header 样式 -->
<Style x:Key="LeftGroupStyle" TargetType="GroupBox">
<Setter Property="Margin" Value="0,0,0,15"/>
<Setter Property="BorderBrush" Value="#CCCCCC"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="10"/>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" FontWeight="Bold" FontSize="14" Foreground="#005792"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- GroupBox 分步骤样式 -->
<Style x:Key="GroupStepControl" TargetType="GroupBox">
<Setter Property="BorderBrush" Value="#37DFE8"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Margin" Value="2,4"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border SnapsToDevicePixels="True" BorderThickness="0">
<ContentPresenter ContentSource="Header"/>
</Border>
<Border Grid.Row="1" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Margin="{TemplateBinding Margin}"
SnapsToDevicePixels="True"
>
<ContentPresenter ContentSource="Content"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" FontFamily="Segoe UI" FontWeight="Black"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<!--导航栏ListBox-->
<Style TargetType="ListBox" x:Key="NavigationListBoxStyle">
<Setter Property="Background" Value="#D7DDE4"/>
<Setter Property="Height" Value="40"/>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ListBoxItem">
<!-- 4.1 重写ListBoxItem的控件模板完全自定义其外观 -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="ItemBorder"
Background="#EEEEF3" BorderBrush="#B0B9C4" BorderThickness="1"
Padding="8,8">
<ContentPresenter/>
</Border>
<!-- 4.2 定义触发器,响应鼠标和选中状态 -->
<ControlTemplate.Triggers>
<!-- 鼠标悬停时的效果 -->
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ItemBorder" Property="Background" Value="Wheat"/>
</Trigger>
<!-- 项目被选中时的效果 -->
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="ItemBorder" Property="Background" Value="#4B96D1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ListBoxItem" x:Key="padListBoxItemStyle">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Border"
Background="{TemplateBinding Background}"
BorderBrush="Transparent"
BorderThickness="1"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ControlTemplate.Triggers>
<!-- 选中状态的触发器 -->
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="#448EC9"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
<!-- 鼠标悬停状态的触发器 -->
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="#2E76CD"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ListBox" x:Key="recipeListBoxStyle">
<Setter Property="Background" Value="#F0F3F6"/>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ListBoxItem" >
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="#F0F3F6"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Opacity" Value="0.4"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border
Background="{TemplateBinding Background}"
SnapsToDevicePixels="True" MinHeight="40" >
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" FontSize="18" Foreground="#3DB39E" Text="&#xe666;" FontFamily="{StaticResource ttfFont}"/>
<TextBlock VerticalAlignment="Center" FontWeight="Bold" FontSize="16" Text="&#xe65e;" FontFamily="{StaticResource ttfFont}" Visibility="{Binding IsInUse, Converter={StaticResource BoolToVisibleConverter}}"/>
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<TextBlock VerticalAlignment="Center" FontWeight="Bold" FontSize="16" Text="&#xe65e;" FontFamily="{StaticResource ttfFont}" Visibility="{Binding IsInUse, Converter={StaticResource BoolToVisibleConverter}}"/>
<TextBlock VerticalAlignment="Center" Visibility="{Binding HasError, Converter={StaticResource BoolToVisibleConverter}}"
Margin="2,0" FontSize="16" Foreground="Red" Text="&#xe6c2;"
FontFamily="{StaticResource ttfFont}" />
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<!-- 选中项和悬停项 -->
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#448EC9"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Opacity" Value="1"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#B5C3CD"/>
<Setter Property="Foreground" Value="White"/>
</MultiTrigger>
<DataTrigger Binding="{Binding SelectedIndex,
RelativeSource={RelativeSource AncestorType=ListBox}}" Value="-1">
<Setter Property="Opacity" Value="1"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsInUse}" Value="True">
<Setter Property="Foreground" Value="Blue"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding RecipeName}" FontWeight="SemiBold" VerticalAlignment="Center" FontSize="16" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ToggleBtnSideBarStyle" TargetType="ToggleButton">
<Setter Property="Width" Value="30"/>
<Setter Property="Height" Value="50"/>
<Setter Property="Background" Value="#2196F3"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Opacity" Value="0.15"/>
<Setter Property="ToolTip" Value="隐藏配方列表"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Border Background="{TemplateBinding Background}"
CornerRadius="5">
<TextBlock x:Name="txt"
Text="&#xe7af;"
FontSize="26"
FontFamily="{StaticResource ttfFont}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{TemplateBinding Foreground}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#1976D2"/>
<Setter Property="Opacity" Value="0.9"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="#1565C0"/>
<Setter TargetName="txt" Property="Text" Value="&#xe7b0;"/>
<Setter Property="ToolTip" Value="显示配方列表"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ModernCheckBoxStyle" TargetType="CheckBox">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="#C2C1C2"/>
<Setter Property="FontSize" Value="26"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Border>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="tx" Text="&#xe617;" FontFamily="{StaticResource ttfFont}"/>
<ContentPresenter Content="{TemplateBinding Content}"/>
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="tx" Property="Text" Value="&#xe616;"/>
<Setter Property="Foreground" Value="#A84AF1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TitleBarButtonStyle" TargetType="Button">
<Setter Property="Width" Value="32"/>
<Setter Property="Height" Value="24"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="root" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#11000000"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="root" Property="Background" Value="#22000000"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TitleBarCloseButtonStyle" TargetType="Button" BasedOn="{StaticResource TitleBarButtonStyle}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Content" Value="&#xe60c;"/>
<Setter Property="FontFamily" Value="{StaticResource ttfFont}"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="ToolTip" Value="关闭"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="root" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#11000000"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="root" Property="Background" Value="#22000000"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TitleBarMinButtonStyle" TargetType="Button" BasedOn="{StaticResource TitleBarButtonStyle}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Content" Value="&#xe650;"/>
<Setter Property="FontFamily" Value="{StaticResource ttfFont}"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="ToolTip" Value="最小化"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="root" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#11000000"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="root" Property="Background" Value="#22000000"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MwGroupBoxStyle" TargetType="GroupBox">
<Setter Property="Background" Value="{StaticResource MwGroupBoxBackground}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border CornerRadius="4" SnapsToDevicePixels="True" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" ContentSource="Header"/>
</Border>
<Border Grid.Row="1" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True">
<ContentPresenter ContentSource="Content"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" FontFamily="Segoe UI" FontWeight="Black" Foreground="White" Margin="10,4"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<SolidColorBrush x:Key="AxisMoveBg" Color="#4A90A4"/>
<SolidColorBrush x:Key="AxisMoveHover" Color="#3F7E8B"/>
<SolidColorBrush x:Key="AxisMovePressed" Color="#33666F"/>
<!-- 轴移动按钮样式 -->
<Style x:Key="AxisMoveButtonStyle" TargetType="Button" BasedOn="{StaticResource BaseRoundedButtonStyle}">
<Setter Property="Background" Value="{StaticResource AxisMoveBg}"/>
<Setter Property="BorderBrush" Value="{StaticResource AxisMoveBg}"/>
<Setter Property="Foreground" Value="White"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource AxisMoveHover}"/>
<Setter Property="BorderBrush" Value="{StaticResource AxisMoveHover}"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource AxisMovePressed}"/>
<Setter Property="BorderBrush" Value="{StaticResource AxisMovePressed}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{StaticResource DisabledBackground}"/>
<Setter Property="BorderBrush" Value="{StaticResource DisabledBackground}"/>
<Setter Property="Foreground" Value="{StaticResource DisabledForeground}"/>
<Setter Property="Cursor" Value="Arrow"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- DataGrid错误提示样式 -->
<Style x:Key="DataGridRowErrorStyle" TargetType="{x:Type DataGridRow}">
<Setter Property="ValidationErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel>
<!-- 在行左侧显示一个红色感叹号 -->
<TextBlock Foreground="Red" FontWeight="Bold"
Text="!" DockPanel.Dock="Bottom" Margin="5,0,0,0"/>
<!-- 占位符,显示原始的行 -->
<AdornedElementPlaceholder />
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<!-- 当行有错误时,设置工具提示 -->
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="ModernSwitchStyle" TargetType="{x:Type CheckBox}">
<Setter Property="Foreground" Value="#CBD5E1"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type CheckBox}">
<StackPanel Orientation="Horizontal">
<Grid x:Name="SwitchRoot" Width="50" Height="20">
<Border x:Name="Track"
Background="#D7DDE4"
CornerRadius="10"
BorderThickness="0"/>
<Ellipse x:Name="Thumb"
Fill="White"
Width="16"
Height="16"
HorizontalAlignment="Left"
Margin="2,0,0,0">
<Ellipse.RenderTransform>
<TranslateTransform X="0"/>
</Ellipse.RenderTransform>
</Ellipse>
</Grid>
<ContentPresenter Margin="8,0,0,0" VerticalAlignment="Center"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="Thumb"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"
To="30" Duration="0:0:0.2"/>
<ColorAnimation Storyboard.TargetName="Track"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
To="#10B981" Duration="0:0:0.2"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="Thumb"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"
To="0" Duration="0:0:0.2"/>
<ColorAnimation Storyboard.TargetName="Track"
Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)"
To="#CBD5E1" Duration="0:0:0.2"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="SwitchRoot" Property="Opacity" Value="0.4"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

View File

@@ -0,0 +1,401 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:cv="clr-namespace:MainShell.Converter"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Resources/Styles/ButtonStyles.xaml"/>
<ResourceDictionary Source="/Resources/Styles/NumberLimit.xaml"/>
</ResourceDictionary.MergedDictionaries>
<FontFamily x:Key="ttfFont">/MainShell;component/Resources/Font/#iconfont</FontFamily>
<!-- 全局转换器 -->
<cv:DateTimeToStringConverter x:Key="DateTimeToStringConverter"/>
<cv:BoolToVisibleConverter x:Key="BoolToVisibleConverter"/>
<cv:BoolToInversionConverter x:Key="boolToInversionConverter"/>
<cv:AxisIndexToNameConverter x:Key="AxisNameConverter"/>
<cv:EnumDescriptionConverter x:Key="EnumDescriptionConverter"/>
<!--画刷-->
<SolidColorBrush x:Key="PgBackground" Color="#EEEEED"/>
<SolidColorBrush x:Key="PgBorder" Color="#EEEEED"/>
<SolidColorBrush x:Key="MwGroupBoxBackground" Color="#38ABF1"/>
<!-- 基础文本样式 -->
<Style x:Key="CommonLableStyle" TargetType="Label" BasedOn="{StaticResource {x:Type Label}}">
<Setter Property="HorizontalContentAlignment" Value="Right"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Margin" Value="3"/>
<Setter Property="Height" Value="35"/>
<Setter Property="Width" Value="120"/>
</Style>
<Style x:Key="LabelStyle" TargetType="TextBlock">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Margin" Value="0,4,10,4"/>
<Setter Property="Foreground" Value="#333333"/>
</Style>
<Style x:Key="TextBlockStyle" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="0,4,10,4"/>
<Setter Property="Foreground" Value="#333333"/>
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
<Style x:Key="ValueStyle" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Margin" Value="0,4,0,4"/>
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Foreground" Value="#111111"/>
</Style>
<!-- GroupBox Header 样式 -->
<Style x:Key="LeftGroupStyle" TargetType="GroupBox">
<Setter Property="Margin" Value="0,0,0,15"/>
<Setter Property="BorderBrush" Value="#CCCCCC"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="10"/>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" FontWeight="Bold" FontSize="14" Foreground="#005792"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- GroupBox 分步骤样式 -->
<Style x:Key="GroupStepControl" TargetType="GroupBox">
<Setter Property="BorderBrush" Value="#37DFE8"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Margin" Value="2,4"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border SnapsToDevicePixels="True" BorderThickness="0">
<ContentPresenter ContentSource="Header"/>
</Border>
<Border Grid.Row="1" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Margin="{TemplateBinding Margin}"
SnapsToDevicePixels="True"
>
<ContentPresenter ContentSource="Content"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" FontFamily="Segoe UI" FontWeight="Black"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ListBoxItem" x:Key="padListBoxItemStyle">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Border"
Background="{TemplateBinding Background}"
BorderBrush="Transparent"
BorderThickness="1"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ControlTemplate.Triggers>
<!-- 选中状态的触发器 -->
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background" Value="#448EC9"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
<!-- 鼠标悬停状态的触发器 -->
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="#2E76CD"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ListBox" x:Key="recipeListBoxStyle">
<Setter Property="Background" Value="#F0F3F6"/>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ListBoxItem" >
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Background" Value="#F0F3F6"/>
<Setter Property="Padding" Value="5"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Opacity" Value="0.4"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border
Background="{TemplateBinding Background}"
SnapsToDevicePixels="True" MinHeight="40" >
<StackPanel Orientation="Horizontal">
<TextBlock VerticalAlignment="Center" FontSize="18" Foreground="#3DB39E" Text="&#xe666;" FontFamily="{StaticResource ttfFont}"/>
<TextBlock VerticalAlignment="Center" FontWeight="Bold" FontSize="16" Text="&#xe65e;" FontFamily="{StaticResource ttfFont}" Visibility="{Binding IsInUse, Converter={StaticResource BoolToVisibleConverter}}"/>
<ContentPresenter
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<TextBlock VerticalAlignment="Center" FontWeight="Bold" FontSize="16" Text="&#xe65e;" FontFamily="{StaticResource ttfFont}" Visibility="{Binding IsInUse, Converter={StaticResource BoolToVisibleConverter}}"/>
<TextBlock VerticalAlignment="Center" Visibility="{Binding HasError, Converter={StaticResource BoolToVisibleConverter}}"
Margin="2,0" FontSize="16" Foreground="Red" Text="&#xe6c2;"
FontFamily="{StaticResource ttfFont}" />
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<!-- 选中项和悬停项 -->
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#448EC9"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Opacity" Value="1"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsSelected" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="#B5C3CD"/>
<Setter Property="Foreground" Value="White"/>
</MultiTrigger>
<DataTrigger Binding="{Binding SelectedIndex,
RelativeSource={RelativeSource AncestorType=ListBox}}" Value="-1">
<Setter Property="Opacity" Value="1"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsInUse}" Value="True">
<Setter Property="Foreground" Value="Blue"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding RecipeName}" FontWeight="SemiBold" VerticalAlignment="Center" FontSize="16" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ToggleBtnSideBarStyle" TargetType="ToggleButton">
<Setter Property="Width" Value="30"/>
<Setter Property="Height" Value="50"/>
<Setter Property="Background" Value="#2196F3"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Opacity" Value="0.15"/>
<Setter Property="ToolTip" Value="隐藏配方列表"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Border Background="{TemplateBinding Background}"
CornerRadius="5">
<TextBlock x:Name="txt"
Text="&#xe7af;"
FontSize="26"
FontFamily="{StaticResource ttfFont}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="{TemplateBinding Foreground}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#1976D2"/>
<Setter Property="Opacity" Value="0.9"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="#1565C0"/>
<Setter TargetName="txt" Property="Text" Value="&#xe7b0;"/>
<Setter Property="ToolTip" Value="显示配方列表"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ModernCheckBoxStyle" TargetType="CheckBox">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="#C2C1C2"/>
<Setter Property="FontSize" Value="26"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Border>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="tx" Text="&#xe617;" FontFamily="{StaticResource ttfFont}"/>
<ContentPresenter Content="{TemplateBinding Content}"/>
</StackPanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="tx" Property="Text" Value="&#xe616;"/>
<Setter Property="Foreground" Value="#A84AF1"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TitleBarButtonStyle" TargetType="Button">
<Setter Property="Width" Value="32"/>
<Setter Property="Height" Value="24"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="root" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#11000000"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="root" Property="Background" Value="#22000000"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TitleBarCloseButtonStyle" TargetType="Button" BasedOn="{StaticResource TitleBarButtonStyle}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Content" Value="&#xe60c;"/>
<Setter Property="FontFamily" Value="{StaticResource ttfFont}"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="ToolTip" Value="关闭"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="root" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#11000000"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="root" Property="Background" Value="#22000000"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TitleBarMinButtonStyle" TargetType="Button" BasedOn="{StaticResource TitleBarButtonStyle}">
<Setter Property="Foreground" Value="Black"/>
<Setter Property="Content" Value="&#xe650;"/>
<Setter Property="FontFamily" Value="{StaticResource ttfFont}"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="ToolTip" Value="最小化"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="root" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="root" Property="Background" Value="#11000000"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="root" Property="Background" Value="#22000000"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<<<<<<< HEAD
<Style x:Key="MwGroupBoxStyle" TargetType="GroupBox">
<Setter Property="Background" Value="{StaticResource MwGroupBoxBackground}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GroupBox">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Border CornerRadius="4" SnapsToDevicePixels="True" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" ContentSource="Header"/>
</Border>
<Border Grid.Row="1" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True">
<ContentPresenter ContentSource="Content"/>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding}" FontFamily="Segoe UI" FontWeight="Black" Foreground="White" Margin="10,4"/>
</DataTemplate>
</Setter.Value>
</Setter>
=======
<!-- DataGrid错误提示样式 -->
<Style x:Key="DataGridRowErrorStyle" TargetType="{x:Type DataGridRow}">
<Setter Property="ValidationErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel>
<!-- 在行左侧显示一个红色感叹号 -->
<TextBlock Foreground="Red" FontWeight="Bold"
Text="!" DockPanel.Dock="Bottom" Margin="5,0,0,0"/>
<!-- 占位符,显示原始的行 -->
<AdornedElementPlaceholder />
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
<!-- 当行有错误时,设置工具提示 -->
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={RelativeSource Self},
Path=(Validation.Errors)[0].ErrorContent}" />
</Trigger>
</Style.Triggers>
>>>>>>> 81155a53cff1759bc7c4285135affedd29f2b9d6
</Style>
</ResourceDictionary>