From 559890c482f5973f06aafdfec9550fee5ba3c7f2 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 09 十一月 2026 17:02:15 +0800
Subject: [PATCH] feat: CAN 模拟器 TCP 化 + 多设备并发调试 + 后台生命周期管理
---
HMI.UI/Style/PanuonResource.xaml | 157 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 134 insertions(+), 23 deletions(-)
diff --git a/HMI.UI/Style/PanuonResource.xaml b/HMI.UI/Style/PanuonResource.xaml
index 01cd250..315b3d9 100644
--- a/HMI.UI/Style/PanuonResource.xaml
+++ b/HMI.UI/Style/PanuonResource.xaml
@@ -11,8 +11,9 @@
xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI">
<ResourceDictionary.MergedDictionaries>
- <pu:StyleDictionary Includes="PasswordBox,TextBox,ComboBox,Button,TreeView,Menu,ListBox,ContextMenu" />
- <ResourceDictionary Source="/HMI.UI;component/Style/Colors.xaml"/>
+ <pu:StyleDictionary Includes="PasswordBox,TextBox,ComboBox,Button,TreeView,ListBox" />
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonDataGrid.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/ScrollBarResource.xaml"/>
<ResourceDictionary Source="/HMI.UI;component/Resources/Font/Font.xaml"/>
</ResourceDictionary.MergedDictionaries>
<sys:Double x:Key="TitleFontSize">20</sys:Double>
@@ -20,7 +21,7 @@
<sys:Double x:Key="ContentFontSize2">14</sys:Double>
<Style x:Key="PrimaryButton" TargetType="Button" BasedOn="{StaticResource {x:Static pu:StyleKeys.ButtonStyle}}">
- <Setter Property="Background" Value="{StaticResource VerBar}"/>
+ <Setter Property="Background" Value="{DynamicResource VerBar}"/>
<Setter Property="Foreground" Value="#FFF"/>
<Setter Property="pu:IconHelper.FontFamily" Value="{StaticResource iconfont}"/>
<Setter Property="pu:IconHelper.Margin" Value="0,0,10,0"/>
@@ -37,13 +38,13 @@
</Style>
<Style x:Key="DangerButton" TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
- <Setter Property="Background" Value="{StaticResource DangerVerBar}"/>
- <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}"/>
+ <Setter Property="Background" Value="{DynamicResource DangerVerBar}"/>
+ <Setter Property="Foreground" Value="{DynamicResource DangerColorContrast}"/>
</Style>
<Style x:Key="SuccessButton" TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
- <Setter Property="Background" Value="{StaticResource GreenVerBar}"/>
- <Setter Property="Foreground" Value="{StaticResource DangerColorContrast}"/>
+ <Setter Property="Background" Value="{DynamicResource GreenVerBar}"/>
+ <Setter Property="Foreground" Value="{DynamicResource DangerColorContrast}"/>
</Style>
<Style x:Key="AddBtn" TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
@@ -99,7 +100,7 @@
<Setter Property="Background" Value="{x:Null}" />
<Setter Property="Margin" Value="0" />
<Setter Property="Padding" Value="0" />
- <Setter Property="Foreground" Value="{StaticResource PrimaryColor}" />
+ <Setter Property="Foreground" Value="{DynamicResource PrimaryColor}" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="ContentTemplate">
<Setter.Value>
@@ -111,7 +112,7 @@
</Style>
<Style x:Key="DangerLinkButton" TargetType="Button" BasedOn="{StaticResource LinkButton}">
- <Setter Property="Foreground" Value="{StaticResource DangerColor}"/>
+ <Setter Property="Foreground" Value="{DynamicResource DangerColor}"/>
</Style>
<Style x:Key="DeleteLink" TargetType="Button" BasedOn="{StaticResource DangerLinkButton}">
@@ -145,7 +146,14 @@
</Style>
<Style x:Key="CommonMenu" TargetType="Menu" BasedOn="{StaticResource {x:Static pu:StyleKeys.MenuStyle}}">
- <Setter Property="Background" Value="{StaticResource PrimaryColor}"/>
+ <Style.Resources>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <pu:StyleDictionary Includes="Menu" />
+ </ResourceDictionary.MergedDictionaries>
+ </ResourceDictionary>
+ </Style.Resources>
+ <Setter Property="Background" Value="{DynamicResource PrimaryColor}"/>
<Setter Property="Foreground" Value="#FFF"/>
<Setter Property="pu:IconHelper.FontFamily" Value="{StaticResource iconfont}"/>
<Setter Property="pu:IconHelper.Margin" Value="0,0,10,0"/>
@@ -154,7 +162,7 @@
</Style>
<Style x:Key="CardBoarder" TargetType="Border">
- <Setter Property="BorderBrush" Value="{StaticResource CommonBoarder}"/>
+ <Setter Property="BorderBrush" Value="{DynamicResource CommonBoarder}"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="Background" Value="#f3f9ff"/>
<Setter Property="Margin" Value="5"/>
@@ -169,10 +177,13 @@
</Style>
<Style x:Key="DefaultTreeView" TargetType="TreeView" BasedOn="{StaticResource {x:Static pu:StyleKeys.TreeViewStyle}}">
- <Setter Property="pu:TreeViewHelper.ItemsHoverBackground" Value="{StaticResource SecondPrimaryColor}"/>
- <Setter Property="pu:TreeViewHelper.ItemsHoverForeground" Value="{StaticResource SecondPrimaryColorContract}"/>
- <Setter Property="pu:TreeViewHelper.ItemsSelectedBackground" Value="{StaticResource PrimaryColor}"/>
- <Setter Property="pu:TreeViewHelper.ItemsSelectedForeground" Value="{StaticResource PrimaryColorContract}"/>
+ <Style.Resources>
+ <Style TargetType="ScrollBar" BasedOn="{StaticResource ScrollStyle_Mobile}"/>
+ </Style.Resources>
+ <Setter Property="pu:TreeViewHelper.ItemsHoverBackground" Value="{DynamicResource SecondPrimaryColor}"/>
+ <Setter Property="pu:TreeViewHelper.ItemsHoverForeground" Value="{DynamicResource SecondPrimaryColorContract}"/>
+ <Setter Property="pu:TreeViewHelper.ItemsSelectedBackground" Value="{DynamicResource PrimaryColor}"/>
+ <Setter Property="pu:TreeViewHelper.ItemsSelectedForeground" Value="{DynamicResource PrimaryColorContract}"/>
<Setter Property="pu:TreeViewHelper.ItemsMargin" Value="0"/>
<Setter Property="pu:TreeViewHelper.ItemsPadding" Value="7,5,7,5"/>
<Setter Property="dp:TreeViewHelper.AutoExpand" Value="True"/>
@@ -183,12 +194,12 @@
<Style x:Key="DefaultTabControl" TargetType="TabControl">
<Setter Property="pu:TabControlHelper.ItemsHorizontalHeaderAlignment" Value="Left"/>
- <Setter Property="pu:TabControlHelper.ItemsHoverBackground" Value="{StaticResource SecondPrimaryColor}"/>
- <Setter Property="pu:TabControlHelper.ItemsHoverForeground" Value="{StaticResource SecondPrimaryColorContract}"/>
+ <Setter Property="pu:TabControlHelper.ItemsHoverBackground" Value="{DynamicResource SecondPrimaryColor}"/>
+ <Setter Property="pu:TabControlHelper.ItemsHoverForeground" Value="{DynamicResource SecondPrimaryColorContract}"/>
<Setter Property="pu:TabControlHelper.ItemsRibbonLineMargin" Value="0,5,0,5"/>
<Setter Property="pu:TabControlHelper.ItemsRibbonLineThickness" Value="4"/>
<Setter Property="pu:TabControlHelper.ItemsRibbonLineVisibility" Value="Visible"/>
- <Setter Property="pu:TabControlHelper.ItemsSelectedRibbonLineBrush" Value="{StaticResource PrimaryColor}"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedRibbonLineBrush" Value="{DynamicResource PrimaryColor}"/>
<Setter Property="pu:TabControlHelper.ItemsSelectedRibbonLineThickness" Value="2"/>
</Style>
@@ -211,7 +222,7 @@
</Style>
<Style x:Key="ModalWindow" TargetType="pu:WindowX">
- <Setter Property="pu:WindowXCaption.Background" Value="{StaticResource ReHoriBar}"/>
+ <Setter Property="pu:WindowXCaption.Background" Value="{DynamicResource ReHoriBar}"/>
<Setter Property="pu:WindowXModalDialog.ButtonStyle" Value="{StaticResource ModalButton}"/>
<Setter Property="pu:WindowXCaption.Foreground" Value="#FFF"/>
<Setter Property="pu:WindowXCaption.Buttons" Value="Close"/>
@@ -221,17 +232,117 @@
<Setter Property="pu:WindowXModalDialog.OKButtonContent"
Value="{DynamicResource App.Save}"/>
<Setter Property="pu:WindowXModalDialog.ButtonPanelMargin" Value="0,30,10,10"/>
+ <Setter Property="InteropOwnersMask" Value="False"/>
</Style>
<Style x:Key="DefaultListBox" TargetType="ListBox" BasedOn="{StaticResource {x:Static pu:StyleKeys.ListBoxStyle}}">
- <Setter Property="pu:ListBoxHelper.ItemsHoverBackground" Value="{StaticResource SecondPrimaryColor}"/>
- <Setter Property="pu:ListBoxHelper.ItemsHoverForeground" Value="{StaticResource SecondPrimaryColorContract}"/>
- <Setter Property="pu:ListBoxHelper.ItemsSelectedBackground" Value="{StaticResource PrimaryColor}"/>
- <Setter Property="pu:ListBoxHelper.ItemsSelectedForeground" Value="{StaticResource PrimaryColorContract}"/>
+ <Setter Property="pu:ListBoxHelper.ItemsHoverBackground" Value="{DynamicResource SecondPrimaryColor}"/>
+ <Setter Property="pu:ListBoxHelper.ItemsHoverForeground" Value="{DynamicResource SecondPrimaryColorContract}"/>
+ <Setter Property="pu:ListBoxHelper.ItemsSelectedBackground" Value="{DynamicResource PrimaryColor}"/>
+ <Setter Property="pu:ListBoxHelper.ItemsSelectedForeground" Value="{DynamicResource PrimaryColorContract}"/>
<Setter Property="pu:ListBoxHelper.ItemsMargin" Value="0"/>
<Setter Property="pu:ListBoxHelper.ItemsPadding" Value="7,5,7,5"/>
<Setter Property="FontSize" Value="{StaticResource ContentFontSize}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
+
+ <Style x:Key="HeaderTabControl" TargetType="TabControl">
+ <Setter Property="pu:TabControlHelper.HeaderPanelAlignment" Value="Stretch"/>
+ <Setter Property="pu:TabControlHelper.ItemsBackground" Value="{DynamicResource VerBar}"/>
+ <Setter Property="pu:TabControlHelper.ItemsForeground" Value="#FFF"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedForeground" Value="{DynamicResource PrimaryColor}"/>
+ <Setter Property="pu:TabControlHelper.ItemsFontSize" Value="14"/>
+ <Setter Property="pu:TabControlHelper.ItemsHeight" Value="30"/>
+ <Setter Property="pu:TabControlHelper.ItemsHorizontalHeaderAlignment" Value="Left"/>
+ <Setter Property="pu:TabControlHelper.ItemsHoverBackground" Value="{DynamicResource SecondPrimaryColor}"/>
+ <Setter Property="pu:TabControlHelper.ItemsHoverForeground" Value="#FFF"/>
+ <Setter Property="pu:TabControlHelper.ItemsPadding" Value="20,5,0,0"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineCornerRadius" Value="4"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineMargin" Value="0,5,0,5"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineThickness" Value="4"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineVisibility" Value="Visible"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedBackground" Value="#FFF"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedRibbonLineBrush" Value="#FFF"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedRibbonLineThickness" Value="2"/>
+ <Setter Property="pu:TabControlHelper.ItemsWidth" Value="100"/>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type TabControl}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="*"/>
+ </Grid.RowDefinitions>
+ <Border BorderThickness="1,1,1,0" BorderBrush="#acacac" Background="{DynamicResource VerBar}" Padding="2,2,10,0">
+ <TabPanel x:Name="HeaderPanel" Grid.Row="0" Panel.ZIndex="1" IsItemsHost="True"/>
+ </Border>
+
+ <Border Grid.Row="1" BorderBrush="{TemplateBinding BorderBrush}"
+ BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
+ <ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"/>
+ </Border>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style x:Key="HorTabControl" TargetType="TabControl">
+ <Setter Property="pu:TabControlHelper.HeaderPanelAlignment" Value="Stretch"/>
+ <Setter Property="pu:TabControlHelper.ItemsBackground" Value="{DynamicResource VerBar}"/>
+ <Setter Property="pu:TabControlHelper.ItemsForeground" Value="#FFFFFF"/>
+ <Setter Property="pu:TabControlHelper.ItemsFontSize" Value="14"/>
+ <Setter Property="pu:TabControlHelper.ItemsHeight" Value="30"/>
+ <Setter Property="pu:TabControlHelper.ItemsHorizontalHeaderAlignment" Value="Left"/>
+ <Setter Property="pu:TabControlHelper.ItemsHoverBackground" Value="{DynamicResource SecondPrimaryColor}"/>
+ <Setter Property="pu:TabControlHelper.ItemsHoverForeground" Value="{DynamicResource SecondPrimaryColorContract}"/>
+ <Setter Property="pu:TabControlHelper.ItemsPadding" Value="20,0,20,0"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineCornerRadius" Value="4"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineMargin" Value="0,5,0,5"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineThickness" Value="4"/>
+ <Setter Property="pu:TabControlHelper.ItemsRibbonLineVisibility" Value="Visible"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedBackground" Value="#FFF"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedRibbonLineBrush" Value="#FFF"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedRibbonLineThickness" Value="2"/>
+ <Setter Property="pu:TabControlHelper.ItemsSelectedBackground" Value="#FFF"/>
+ <Setter Property="Template">
+ <Setter.Value>
+ <ControlTemplate TargetType="{x:Type TabControl}">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="*"/>
+ </Grid.RowDefinitions>
+ <Border BorderThickness="1,1,1,0" BorderBrush="#acacac" Background="{DynamicResource VerBar}" Padding="2,2,10,0">
+ <TabPanel x:Name="HeaderPanel" Grid.Row="0" Panel.ZIndex="1" IsItemsHost="True"/>
+ </Border>
+
+ <Border Grid.Row="1" BorderBrush="{TemplateBinding BorderBrush}"
+BorderThickness="1,0,1,1" Background="{TemplateBinding Background}">
+ <ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"/>
+ </Border>
+ </Grid>
+ </ControlTemplate>
+ </Setter.Value>
+ </Setter>
+ </Style>
+
+ <Style x:Key="DefaultPageItem" TargetType="pu:PaginationItem">
+ <Setter Property="Cursor" Value="Hand" />
+ <Setter Property="MinWidth" Value="30" />
+ <Setter Property="Width" Value="Auto" />
+ <Setter Property="Width" Value="Auto" />
+ </Style>
+
+ <Style x:Key="DefaultPage" TargetType="pu:Pagination">
+ <Setter Property="Height" Value="30"/>
+ <Setter Property="HorizontalAlignment" Value="Right"/>
+ <Setter Property="Foreground" Value="Black" />
+ <Setter Property="ItemsBackground" Value="Transparent"/>
+ <Setter Property="ItemsCornerRadius" Value="12"/>
+ <Setter Property="ItemsSelectedBackground" Value="{DynamicResource SecondPrimaryColor}"/>
+ <Setter Property="ItemContainerStyle" Value="{StaticResource DefaultPageItem}"/>
+ </Style>
+
</ResourceDictionary>
\ No newline at end of file
--
Gitblit v1.9.1