From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点
---
HMI.UI/Themes/Generic.xaml | 187 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 187 insertions(+), 0 deletions(-)
diff --git a/HMI.UI/Themes/Generic.xaml b/HMI.UI/Themes/Generic.xaml
new file mode 100644
index 0000000..9c06e9b
--- /dev/null
+++ b/HMI.UI/Themes/Generic.xaml
@@ -0,0 +1,187 @@
+锘�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:HMI.UI">
+ <RadialGradientBrush x:Key="RedLight" GradientOrigin="0.3,0.3"
+ RadiusX="0.7"
+ RadiusY="0.7">
+ <RadialGradientBrush.GradientStops>
+ <GradientStop Color="#fd583e" Offset="0"/>
+ <GradientStop Color="#d5341f" Offset="0.5"/>
+ <GradientStop Color="#aa0e00" Offset="1"/>
+ </RadialGradientBrush.GradientStops>
+ </RadialGradientBrush>
+
+ <RadialGradientBrush x:Key="GreenLight" GradientOrigin="0.3,0.3"
+ RadiusX="0.7"
+ RadiusY="0.7">
+ <RadialGradientBrush.GradientStops>
+ <GradientStop Color="#1b9e14" Offset="1"/>
+ <GradientStop Color="#21c418" Offset="0.5"/>
+ <GradientStop Color="#28ea1d" Offset="0"/>
+ </RadialGradientBrush.GradientStops>
+ </RadialGradientBrush>
+
+ <Style TargetType="{x:Type local:LightBall}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:LightBall}">
+ <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
+ <Ellipse Height="{TemplateBinding Size}" Width="{TemplateBinding Size}" VerticalAlignment="Center">
+ <Ellipse.Style>
+ <Style TargetType="Ellipse">
+ <Setter Property="Fill" Value="Gray"/>
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding Value,RelativeSource={RelativeSource Mode=TemplatedParent}}" Value="True">
+ <Setter Property="Fill" Value="{StaticResource GreenLight}"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Value,RelativeSource={RelativeSource Mode=TemplatedParent}}" Value="False">
+ <Setter Property="Fill" Value="{StaticResource RedLight}"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Ellipse.Style>
+ </Ellipse>
+ <ContentPresenter Margin="5,0,0,0" VerticalAlignment="Center"/>
+ </StackPanel>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style TargetType="{x:Type local:EditBox}">
+ <Setter Property="HorizontalAlignment" Value="Stretch" />
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:EditBox}">
+ <Grid Cursor="Hand" MinWidth="{TemplateBinding MinWidth}" Background="{TemplateBinding Background}">
+ <Border x:Name="sb" VerticalAlignment="Center" Padding="0" Margin="0">
+ <Border.Style>
+ <Style TargetType="Border">
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="BorderBrush" Value="Transparent"/>
+ <Style.Triggers>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value=""/>
+ <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
+ </MultiDataTrigger.Conditions>
+ <MultiDataTrigger.Setters>
+ <Setter Property="BorderBrush" Value="Black"/>
+ <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
+ </MultiDataTrigger.Setters>
+ </MultiDataTrigger>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value="{x:Null}"/>
+ <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
+ </MultiDataTrigger.Conditions>
+ <MultiDataTrigger.Setters>
+ <Setter Property="BorderBrush" Value="Black"/>
+ <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
+ </MultiDataTrigger.Setters>
+ </MultiDataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Border.Style>
+ <TextBlock x:Name="PART_TextBlockPart"
+ FontSize="{TemplateBinding FontSize}"
+ TextWrapping="NoWrap" Padding="0" VerticalAlignment="Center"
+ Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"/>
+ </Border>
+ <TextBox x:Name="PART_TextBoxPart" BorderThickness="1" Padding="0" Background="#FFF"
+ FontSize="{TemplateBinding FontSize}" Visibility="Collapsed"
+ Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"/>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style TargetType="{x:Type local:TableComboBox}">
+ <Setter Property="HorizontalAlignment" Value="Stretch" />
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:TableComboBox}">
+ <Grid Cursor="Hand" MinWidth="{TemplateBinding MinWidth}" Background="{TemplateBinding Background}">
+ <Border x:Name="sb" VerticalAlignment="Center" Padding="0" Margin="0">
+ <Border.Style>
+ <Style TargetType="Border">
+ <Setter Property="BorderThickness" Value="0"/>
+ <Setter Property="BorderBrush" Value="Transparent"/>
+ <Style.Triggers>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value=""/>
+ <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
+ </MultiDataTrigger.Conditions>
+ <MultiDataTrigger.Setters>
+ <Setter Property="BorderBrush" Value="Black"/>
+ <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
+ </MultiDataTrigger.Setters>
+ </MultiDataTrigger>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value="{x:Null}"/>
+ <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
+ </MultiDataTrigger.Conditions>
+ <MultiDataTrigger.Setters>
+ <Setter Property="BorderBrush" Value="Black"/>
+ <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
+ </MultiDataTrigger.Setters>
+ </MultiDataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Border.Style>
+ <TextBlock x:Name="PART_TextBlockPart"
+ FontSize="{TemplateBinding FontSize}"
+ TextWrapping="NoWrap" Padding="0" VerticalAlignment="Center"
+ Text="{Binding Path=Value, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"/>
+ </Border>
+ <ComboBox x:Name="PART_ComboBoxPart" BorderThickness="0" Padding="0"
+ FontSize="{TemplateBinding FontSize}" Visibility="Collapsed"
+ Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"/>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style TargetType="{x:Type local:ScrollLabel}">
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type local:ScrollLabel}">
+ <ScrollViewer Name="slv" IsHitTestVisible="False" Width="{TemplateBinding Width}"
+ VerticalScrollBarVisibility="Hidden"
+ BorderThickness="0"
+ HorizontalScrollBarVisibility="Hidden">
+ <Label x:Name="label" Content="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"
+ VerticalContentAlignment="Center"
+ BorderThickness="0"
+ Foreground="{TemplateBinding Foreground}"
+ Padding="{TemplateBinding Padding}"
+ Margin="{TemplateBinding Margin}"
+ HorizontalContentAlignment="Left" FontSize="{TemplateBinding FontSize}">
+ <!--<Label.Triggers>
+ <EventTrigger RoutedEvent="Label.Loaded">
+ <BeginStoryboard HandoffBehavior="Compose">
+ <Storyboard>
+ <DoubleAnimation From="0"
+ To="{Binding ElementName=slv,Path=ScrollableWidth}"
+ Duration="0:0:3"
+ Storyboard.TargetName="slv"
+ AutoReverse="True"
+ RepeatBehavior="Forever"
+ BeginTime="0:0:0.2"
+ Storyboard.TargetProperty="(local:ScrollViewerBehavior.HorizontalOffset)">
+ </DoubleAnimation>
+ </Storyboard>
+ </BeginStoryboard>
+ </EventTrigger>
+ </Label.Triggers>-->
+ </Label>
+ </ScrollViewer>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+</ResourceDictionary>
\ No newline at end of file
--
Gitblit v1.9.1