From b544d5cccd76735e034c8055918a50927b437474 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期二, 10 十一月 2026 08:29:04 +0800
Subject: [PATCH] fix: 维护模式重复进入失败与按钮灰死 + Broker 并发验证用例

---
 HMI.UI/Style/FormStyle.xaml |  100 +++++++++++++++++++++++++++-----------------------
 1 files changed, 54 insertions(+), 46 deletions(-)

diff --git a/HMI.UI/Style/FormStyle.xaml b/HMI.UI/Style/FormStyle.xaml
index b77cbf6..d6407ac 100644
--- a/HMI.UI/Style/FormStyle.xaml
+++ b/HMI.UI/Style/FormStyle.xaml
@@ -4,7 +4,7 @@
             xmlns:pu="https://opensource.panuon.com/wpf-ui">
 
     <ResourceDictionary.MergedDictionaries>
-        <pu:StyleDictionary Includes="TextBox,ComboBox,Button" />
+        <pu:StyleDictionary Includes="TextBox,ComboBox,Button,PasswordBox" />
     </ResourceDictionary.MergedDictionaries>
 
     <Style x:Key="ModalButton" TargetType="Button" BasedOn="{StaticResource {x:Static pu:WindowXModalDialog.ButtonStyleKey}}">
@@ -27,8 +27,8 @@
                 </Setter>
             </Trigger>
             <Trigger Property="Tag" Value="OK">
-                <Setter Property="Background" Value="{StaticResource PrimaryColor}" />
-                <Setter Property="Foreground" Value="{StaticResource PrimaryColorContract}" />
+                <Setter Property="Background" Value="{DynamicResource VerBar}" />
+                <Setter Property="Foreground" Value="{DynamicResource PrimaryColorContract}" />
                 <Setter Property="Padding" Value="20,0" />
                 <Setter Property="Height" Value="35" />
             </Trigger>
@@ -48,33 +48,15 @@
         </Style.Triggers>
     </Style>
 
-
     <Style x:Key="SearchButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
         <Setter Property="pu:ButtonHelper.CornerRadius" Value="0" />
-        <Setter Property="Background" Value="{StaticResource PrimaryColor}" />
-        <Setter Property="Foreground" Value="{StaticResource PrimaryColorContract}" />
+        <Setter Property="Width" Value="30" />
+        <Setter Property="Background" Value="{DynamicResource VerBar}" />
+        <Setter Property="Foreground" Value="{DynamicResource PrimaryColorContract}" />
         <Setter Property="FontFamily" Value="{StaticResource iconfont}" />
         <Setter Property="Height" Value="35" />
         <Setter Property="Content" Value="&#xe752;"/>
-        <Setter Property="pu:ButtonHelper.PendingSpinStyle">
-            <Setter.Value>
-                <Style TargetType="pu:Spin" BasedOn="{StaticResource {x:Static pu:ButtonHelper.PendingSpinStyleKey}}">
-                    <Setter Property="SpinStyle" Value="Ring2" />
-                </Style>
-            </Setter.Value>
-        </Setter>
-        <Style.Triggers>
-            <Trigger Property="pu:ButtonHelper.IsPending" Value="True">
-                <Setter Property="pu:ButtonHelper.ClickEffect" Value="Shake" />
-                <Setter Property="ContentTemplate">
-                    <Setter.Value>
-                        <DataTemplate>
-                            <TextBlock Text="Click again ?" />
-                        </DataTemplate>
-                    </Setter.Value>
-                </Setter>
-            </Trigger>
-        </Style.Triggers>
+        <Setter Property="Cursor" Value="Hand"/>
     </Style>
 
     <Style x:Key="EditorTextBoxStyle" TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
@@ -85,7 +67,9 @@
         <Setter Property="pu:TextBoxHelper.FocusedWatermarkForeground" Value="#AAAAAA" />
         <Setter Property="Height" Value="35" />
         <Setter Property="Padding" Value="5,0" />
-        <Setter Property="Background" Value="Transparent" />
+        <Setter Property="BorderThickness" Value="1" />
+        <Setter Property="BorderBrush" Value="Gray" />
+        <Setter Property="Background" Value="White" />
         <Setter Property="Foreground" Value="Black" />
         <Setter Property="VerticalContentAlignment" Value="Center"/>
         <Style.Triggers>
@@ -103,7 +87,6 @@
         <Setter Property="pu:TextBoxHelper.FocusedWatermarkForeground" Value="#AAAAAA" />
         <Setter Property="Height" Value="35" />
         <Setter Property="Padding" Value="5,0" />
-        <Setter Property="Background" Value="Transparent" />
         <Setter Property="Foreground" Value="Black" />
         <Setter Property="VerticalContentAlignment" Value="Center"/>
         <Style.Triggers>
@@ -124,35 +107,42 @@
     <Style x:Key="InputFormGroupStyle" TargetType="pu:FormGroup">
         <Style.Resources>
             <Style TargetType="TextBox" BasedOn="{StaticResource EditorTextBoxStyle}">
-                
             </Style>
         </Style.Resources>
-        <Setter Property="HeaderWidth" Value="70" />
-        <Setter Property="HeaderHeight" Value="35" />
+        <Setter Property="HeaderTemplate">
+            <Setter.Value>
+                <DataTemplate>
+                    <Border Margin="5,0,5,0">
+                        <ContentControl Content="{Binding}"/>
+                    </Border>
+                </DataTemplate>
+            </Setter.Value>
+        </Setter>
+
+        <Setter Property="HeaderWidth" Value="Auto" />
         <Setter Property="Orientation" Value="Horizontal" />
         <Setter Property="Margin" Value="0,10,0,0" />
     </Style>
 
+    <DataTemplate x:Key="RequiredFormHeader">
+        <StackPanel Orientation="Horizontal" Margin="0,0,5,0">
+            <TextBlock Text="*" Width="5" Foreground="Red" />
+            <ContentControl Content="{Binding}" />
+        </StackPanel>
+    </DataTemplate>
+
     <Style x:Key="RequiredInputFormGroupStyle" TargetType="pu:FormGroup" BasedOn="{StaticResource InputFormGroupStyle}">
-        <Setter Property="HeaderTemplate">
-            <Setter.Value>
-                <DataTemplate>
-                    <StackPanel Orientation="Horizontal">
-                        <TextBlock Text="*" Foreground="Red" />
-                        <ContentControl Content="{Binding}" />
-                    </StackPanel>
-                </DataTemplate>
-            </Setter.Value>
-        </Setter>
+        <Setter Property="HeaderTemplate" Value="{StaticResource RequiredFormHeader}"/>
     </Style>
 
     <Style x:Key="FormComboxStyle" TargetType="ComboBox" BasedOn="{StaticResource {x:Type ComboBox}}">
         <Setter Property="pu:ComboBoxHelper.CornerRadius" Value="0"/>
-        <Setter Property="pu:ComboBoxHelper.ItemsHoverBackground" Value="{StaticResource SecondPrimaryColor}"/>
+        <Setter Property="pu:ComboBoxHelper.ItemsHoverBackground" Value="{DynamicResource SecondPrimaryColor}"/>
         <Setter Property="pu:ComboBoxHelper.ItemsHoverForeground" Value="#FFF"/>
         <Setter Property="pu:ComboBoxHelper.ItemsSelectedForeground" Value="Black"/>
         <Setter Property="pu:ComboBoxHelper.HoverBorderBrush" Value="#007ACC" />
         <Setter Property="pu:ComboBoxHelper.FocusedBorderBrush" Value="#007ACC" />
+        <Setter Property="pu:ComboBoxHelper.ClearButtonVisibility" Value="VisibleOnNonnull" />
         <Setter Property="Height" Value="35" />
         <Setter Property="Margin" Value="0" />
         <Setter Property="Background" Value="#FFF" />
@@ -162,19 +152,37 @@
         <Setter Property="HorizontalAlignment" Value="Stretch"/>
         <Setter Property="Foreground" Value="Black" />
         <Setter Property="SelectedValuePath" Value="Content"/>
+        <Setter Property="BorderThickness" Value="1" />
+        <Setter Property="BorderBrush" Value="Gray" />
+        <Style.Triggers>
+            <Trigger Property="IsEnabled" Value="False">
+                <Setter Property="Background" Value="#e8e8e8"/>
+                <Setter Property="Opacity" Value="1"/>
+            </Trigger>
+        </Style.Triggers>
     </Style>
 
     <Style x:Key="TimePicker" TargetType="pu:DateTimePicker">
         <Setter Property="Height" Value="35"/>
         <Setter Property="ClearButtonVisibility" Value="Visible"/>
-        <Setter Property="ItemsCheckedBackground" Value="{StaticResource PrimaryColor}"/>
-        <Setter Property="ItemsCheckedForeground" Value="{StaticResource SecondPrimaryColorContract}"/>
-        <Setter Property="ItemsHoverBackground" Value="{StaticResource SecondPrimaryColor}"/>
-        <Setter Property="ItemsHoverForeground" Value="{StaticResource SecondPrimaryColorContract}"/>
+        <Setter Property="ItemsCheckedBackground" Value="{DynamicResource PrimaryColor}"/>
+        <Setter Property="ItemsCheckedForeground" Value="{DynamicResource SecondPrimaryColorContract}"/>
+        <Setter Property="ItemsHoverBackground" Value="{DynamicResource SecondPrimaryColor}"/>
+        <Setter Property="ItemsHoverForeground" Value="{DynamicResource SecondPrimaryColorContract}"/>
         <Setter Property="TextStringFormat" Value="yyyy-MM-dd HH:mm:ss"/>
-        <Setter Property="Width" Value="180"/>
+        <Setter Property="MinWidth" Value="180"/>
         <Setter Property="Mode" Value="DateTime"/>
         <Setter Property="SelectedDateTime" Value="{x:Null}"/>
     </Style>
 
+    <Style x:Key="SignInPasswordBoxStyle" TargetType="PasswordBox" BasedOn="{StaticResource {x:Type PasswordBox}}">
+        <Setter Property="pu:PasswordBoxHelper.FocusedBorderBrush" Value="#6CBCEA" />
+        <Setter Property="pu:PasswordBoxHelper.FocusedShadowColor" Value="#6CBCEA" />
+        <Setter Property="pu:PasswordBoxHelper.CornerRadius" Value="2" />
+        <Setter Property="pu:PasswordBoxHelper.WatermarkForeground" Value="#4A4A4A" />
+        <Setter Property="pu:PasswordBoxHelper.FocusedWatermarkForeground" Value="#AAAAAA" />
+        <Setter Property="pu:PasswordBoxHelper.PlainButtonVisibility" Value="VisibleOnHover" />
+        <Setter Property="VerticalContentAlignment" Value="Center" />
+        <Setter Property="Height" Value="35" />
+    </Style>
 </ResourceDictionary>
\ No newline at end of file

--
Gitblit v1.9.1