From e3868d4d61ded0e76fc8fe3fdacdd9e6d9113cf1 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 13 十月 2025 08:50:15 +0800
Subject: [PATCH] 优化HMI;
---
Plugin.TsExecution/SingleControl.xaml | 273 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 232 insertions(+), 41 deletions(-)
diff --git a/Plugin.TsExecution/SingleControl.xaml b/Plugin.TsExecution/SingleControl.xaml
index 5cfe37e..06c8185 100644
--- a/Plugin.TsExecution/SingleControl.xaml
+++ b/Plugin.TsExecution/SingleControl.xaml
@@ -7,6 +7,7 @@
xmlns:pw="https://opensource.panuon.com/wpf"
xmlns:pu="https://opensource.panuon.com/wpf-ui"
xmlns:local="clr-namespace:Plugin.TsExecution"
+ xmlns:cdp="clr-namespace:HMI.Core.DpUtil;assembly=HMI.Core"
mc:Ignorable="d"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Loaded="UserControl_Loaded"
@@ -16,23 +17,29 @@
x:Name="control"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
- <sys:Double x:Key="nanD">NaN</sys:Double>
+ <ResourceDictionary>
+ <ResourceDictionary.MergedDictionaries>
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonListView.xaml"/>
+ <ResourceDictionary Source="/HMI.UI;component/Style/PanuonDataGrid.xaml"/>
+ </ResourceDictionary.MergedDictionaries>
+ <sys:Double x:Key="nanD">NaN</sys:Double>
- <Style TargetType="Label" x:Key="baseLabel">
- <Setter Property="HorizontalContentAlignment" Value="Left"/>
- <Setter Property="VerticalContentAlignment" Value="Center"/>
- <Setter Property="Padding" Value="5"/>
- <Setter Property="FontSize" Value="{Binding ActualWidth,ElementName=control,
+ <Style TargetType="Label" x:Key="baseLabel">
+ <Setter Property="HorizontalContentAlignment" Value="Left"/>
+ <Setter Property="VerticalContentAlignment" Value="Center"/>
+ <Setter Property="Padding" Value="5"/>
+ <Setter Property="FontSize" Value="{Binding ActualWidth,ElementName=control,
Converter={StaticResource fc}, ConverterParameter='20,1093,20'}"/>
- </Style>
- <Style TargetType="TextBlock" x:Key="baseText">
- <Setter Property="HorizontalAlignment" Value="Left"/>
- <Setter Property="VerticalAlignment" Value="Center"/>
- <Setter Property="Padding" Value="0,0,2,0"/>
- <Setter Property="FontSize" Value="{Binding ActualWidth,ElementName=control,
+ </Style>
+ <Style TargetType="TextBlock" x:Key="baseText">
+ <Setter Property="HorizontalAlignment" Value="Left"/>
+ <Setter Property="VerticalAlignment" Value="Center"/>
+ <Setter Property="Padding" Value="0,0,2,0"/>
+ <Setter Property="FontSize" Value="{Binding ActualWidth,ElementName=control,
Converter={StaticResource fc}, ConverterParameter='20,1093,20'}"/>
- </Style>
- <Brush x:Key="passedColor">#beed00</Brush>
+ </Style>
+ <Brush x:Key="passedColor">#beed00</Brush>
+ </ResourceDictionary>
</UserControl.Resources>
<Grid>
@@ -197,14 +204,148 @@
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
- <DataGrid Grid.Row="0" Style="{StaticResource DefaultDataGrid}"
- Margin="5,0,5,5"
- pu:DataGridHelper.ColumnHeaderFontSize="{Binding ActualWidth,
+ <!--<ListView Grid.Row="0" Style="{StaticResource DefaultListTable}" x:Name="table"
+ ItemsSource="{Binding Datasource}"
+ VirtualizingPanel.IsContainerVirtualizable="True"
+VirtualizingPanel.IsVirtualizing="True"
+VirtualizingPanel.VirtualizationMode="Recycling"
+ pu:ListViewHelper.ItemsHeight="{StaticResource nanD}"
+ pu:ListViewHelper.ColumnHeaderFontSize="{Binding ActualWidth,
ElementName=control,
Converter={StaticResource fc}, ConverterParameter='15,1093,15,22'}"
- FontSize="{Binding ActualWidth,
+ FontSize="{Binding ActualWidth,
ElementName=control,
Converter={StaticResource fc}, ConverterParameter='15,1093,15,20'}"
+ pu:ListViewHelper.ColumnHeaderHeight="{Binding ActualWidth,ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='30,1093,-1,45'}">
+ <ListView.View>
+ <GridView AllowsColumnReorder="False">
+ <GridViewColumn Width="60" Header="#">
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <TextBlock Text="{Binding Converter={StaticResource lvRowNumber},
+RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"/>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+
+ <GridViewColumn Width="200">
+ <GridViewColumn.Header>
+ <TextBlock Text="{DynamicResource Test.Name}"/>
+ </GridViewColumn.Header>
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <DockPanel>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}"
+ Text="{Binding Name}"/>
+ </Border>
+ </DockPanel>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="100">
+ <GridViewColumn.Header>
+ <TextBlock Text="{DynamicResource Test.Unit}"/>
+ </GridViewColumn.Header>
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Grid HorizontalAlignment="Stretch" VerticalAlignment="Center">
+ <Border Style="{StaticResource CellBorder}" MouseDown="TextBlock_MouseDown">
+ <TextBlock Style="{StaticResource ListTableTextBlock}"
+ Text="{Binding Unit}"/>
+ </Border>
+ </Grid>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="120">
+ <GridViewColumn.Header>
+ <TextBlock Text="{DynamicResource Test.Value}"/>
+ </GridViewColumn.Header>
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}"
+ Text="{Binding Value}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="120">
+ <GridViewColumn.Header>
+ <TextBlock Text="{DynamicResource Test.LimitDown}"/>
+ </GridViewColumn.Header>
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}"
+ Text="{Binding LimitDown}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="120">
+ <GridViewColumn.Header>
+ <TextBlock Text="{DynamicResource Test.LimitUp}"/>
+ </GridViewColumn.Header>
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}"
+ Text="{Binding LimitUp}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="180">
+ <GridViewColumn.Header>
+ <TextBlock Text="{DynamicResource Test.ConsumeTime}"/>
+ </GridViewColumn.Header>
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Border Style="{StaticResource CellBorder}">
+ <TextBlock Style="{StaticResource ListTableTextBlock}"
+ Text="{Binding ConsumeTime}"/>
+ </Border>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ <GridViewColumn Width="120">
+ <GridViewColumn.Header>
+ <TextBlock Text="{DynamicResource Test.Result}"/>
+ </GridViewColumn.Header>
+ <GridViewColumn.CellTemplate>
+ <DataTemplate>
+ <Grid x:Name="border" Margin="0">
+ <TextBlock x:Name="text" Margin="-1" Padding="0" VerticalAlignment="Center" Text="{Binding Result}"/>
+ </Grid>
+ <DataTemplate.Triggers>
+ <DataTrigger Binding="{Binding Result}" Value="Passed">
+ <Setter TargetName="border" Property="Background" Value="{StaticResource passedColor}"/>
+ <Setter TargetName="text" Property="Foreground" Value="#000"/>
+ </DataTrigger>
+ <DataTrigger Binding="{Binding Result}" Value="Failed">
+ <Setter TargetName="border" Property="Background" Value="{StaticResource DangerColor}"/>
+ <Setter TargetName="text" Property="Foreground" Value="#000"/>
+ </DataTrigger>
+ </DataTemplate.Triggers>
+ </DataTemplate>
+ </GridViewColumn.CellTemplate>
+ </GridViewColumn>
+ </GridView>
+ </ListView.View>
+ </ListView>-->
+
+ <DataGrid Grid.Row="0" Style="{StaticResource DefaultDataGrid}"
+ Margin="5,0,5,5"
+ pu:DataGridHelper.ColumnHeaderFontWeight="Normal"
+ pu:DataGridHelper.ColumnHeaderFontSize="{Binding ActualWidth,
+ ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='11,1093,14'}"
+ FontSize="{Binding ActualWidth,
+ ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='11,1093,14'}"
pu:DataGridHelper.ColumnHeaderPadding="3"
dp:DataGridHelper.ShowRowNumber="True"
VirtualizingPanel.IsContainerVirtualizable="True"
@@ -212,7 +353,7 @@
VirtualizingPanel.VirtualizationMode="Recycling"
RowHeight="{StaticResource nanD}"
ColumnHeaderHeight="{Binding ActualWidth,ElementName=control,
-Converter={StaticResource fc}, ConverterParameter='30,1093,-1,45'}"
+Converter={StaticResource fc}, ConverterParameter='32,1093,30,45'}"
ItemsSource="{Binding Datasource}"
x:Name="table">
<DataGrid.Resources>
@@ -232,50 +373,47 @@
</DataGrid.Resources>
<DataGrid.Columns>
- <!--<DataGridTemplateColumn Header="#" CanUserResize="False">
- <DataGridTemplateColumn.CellTemplate>
- <DataTemplate>
- <TextBlock Text="{Binding Converter={StaticResource rowNumber},
-RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
- </DataTemplate>
- </DataGridTemplateColumn.CellTemplate>
- </DataGridTemplateColumn>-->
-
<DataGridTextColumn Header="#"
ElementStyle="{StaticResource TableTextBlock}"
Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}"
- Width="60"/>
- <DataGridTextColumn Width="*" Binding="{Binding Name}"
+ Width="0.4*"/>
+ <DataGridTextColumn Width="2.5*" Binding="{Binding Name}"
ElementStyle="{StaticResource TableTextBlock}">
<DataGridTextColumn.Header>
<TextBlock Text="{DynamicResource Test.Name}"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
- <DataGridTextColumn Width="100" Binding="{Binding Unit}"
+ <DataGridTextColumn Width="0.8*" Binding="{Binding Unit}"
ElementStyle="{StaticResource TableTextBlock}">
<DataGridTextColumn.Header>
<TextBlock Text="{DynamicResource Test.Unit}"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
- <DataGridTextColumn Width="*" Binding="{Binding Value}"
+ <DataGridTextColumn Width="2*" Binding="{Binding Value}"
ElementStyle="{StaticResource TableTextBlock}">
<DataGridTextColumn.Header>
<TextBlock Text="{DynamicResource Test.Value}"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
- <DataGridTextColumn Width="*" Binding="{Binding LimitDown}"
+ <DataGridTextColumn Width="1.5*" Binding="{Binding LimitDown}"
ElementStyle="{StaticResource TableTextBlock}">
<DataGridTextColumn.Header>
<TextBlock Text="{DynamicResource Test.LimitDown}"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
- <DataGridTextColumn Width="*" Binding="{Binding LimitUp}"
+ <DataGridTextColumn Width="1.5*" Binding="{Binding LimitUp}"
ElementStyle="{StaticResource TableTextBlock}">
<DataGridTextColumn.Header>
<TextBlock Text="{DynamicResource Test.LimitUp}"/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
- <DataGridTemplateColumn Width="120">
+ <DataGridTextColumn Width="0.6*" Binding="{Binding ConsumeTime}"
+ ElementStyle="{StaticResource TableTextBlock}">
+ <DataGridTextColumn.Header>
+ <TextBlock Text="{DynamicResource Test.ConsumeTime}"/>
+ </DataGridTextColumn.Header>
+ </DataGridTextColumn>
+ <DataGridTemplateColumn Width="1*">
<DataGridTemplateColumn.Header>
<TextBlock Text="{DynamicResource Test.Result}"/>
</DataGridTemplateColumn.Header>
@@ -312,6 +450,19 @@
<Label Padding="0" FontSize="12" VerticalContentAlignment="Center" Content="{Binding CurrentStep}"/>
<StackPanel DockPanel.Dock="Right" Orientation="Horizontal" Margin="0,0,5,0">
+ <!--<Button FontSize="12" x:Name="scannerSetting"
+ Margin="0,0,10,0" Click="Button_Click" Content="鎵爜鏋缃�">
+ <Button.Style>
+ <Style TargetType="Button" BasedOn="{StaticResource LinkButton}">
+ <Style.Triggers>
+ <DataTrigger Binding="{Binding IsAutoMode}" Value="True">
+ <Setter Property="Visibility" Value="Collapsed"/>
+ </DataTrigger>
+ </Style.Triggers>
+ </Style>
+ </Button.Style>
+ </Button>-->
+
<Label Padding="0" FontSize="12"
VerticalAlignment="Center"
VerticalContentAlignment="Center" Content="{DynamicResource Ts.ProbeCount}"/>
@@ -328,8 +479,10 @@
VerticalContentAlignment="Center" Content="{Binding ProbeWarn}"/>
</StackPanel>
- <Button FontSize="12" Style="{StaticResource LinkButton}" x:Name="clear" Margin="10,0,0,0" Click="Button_Click"
- Content="{DynamicResource App.Clear}"/>
+ <Button FontSize="12" Style="{StaticResource LinkButton}"
+ cdp:PermissionHelper.RequiredPermission="Permission:ClearProbeCount"
+ x:Name="clear" Margin="10,0,0,0" Click="Button_Click"
+ Content="{DynamicResource App.Clear}" Cursor=""/>
</StackPanel>
<Label x:Name="probeCountAlarm" Visibility="Collapsed" DockPanel.Dock="Left" Padding="30,0" FontSize="12" Foreground="Red"
@@ -340,6 +493,8 @@
</Grid>
<Canvas Grid.Row="0" Grid.RowSpan="5" Visibility="Collapsed"
+ VirtualizingPanel.IsVirtualizing="False"
+ VirtualizingPanel.VirtualizationMode="Standard"
Background="#AAFFFFFF" x:Name="pausePanel" SizeChanged="pausePanel_Loaded">
<Border BorderBrush="#000" Background="#FFF" BorderThickness="0.5"
CornerRadius="5"
@@ -361,10 +516,8 @@
<TextBlock Margin="20,20,20,0" Grid.Row="1"
FontSize="40"
- FontFamily="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon"
- Foreground="#F9D01A"
- Text=""
- />
+ FontFamily="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon"
+ Foreground="#F9D01A" Text=""/>
<Label Margin="0,20,20,0" Grid.Row="1" Grid.Column="1" Content="{DynamicResource Ts.PauseMsg}"/>
<StackPanel Margin="10" Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right">
@@ -381,6 +534,44 @@
</Border>
</Canvas>
+ <!--<Canvas Grid.Row="0" Grid.RowSpan="5" Visibility="Collapsed"
+ Background="#AAFFFFFF" x:Name="scannerPanel" SizeChanged="pausePanel_Loaded">
+ <Border BorderBrush="#000" Background="#FFF" BorderThickness="0.5" CornerRadius="5" x:Name="scannerVisualModal">
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ <RowDefinition Height="Auto"/>
+ </Grid.RowDefinitions>
+ <Grid.ColumnDefinitions>
+ <ColumnDefinition Width="Auto"/>
+ <ColumnDefinition />
+ </Grid.ColumnDefinitions>
+ <Border Padding="10,5,0,5" Grid.ColumnSpan="2" Background="{StaticResource PrimaryColor}"
+ CornerRadius="5,5,0,0">
+ <Label Padding="0" Margin="0" Foreground="#FFF" Content="璇锋壂鐮�"/>
+ </Border>
+
+ <pu:FormGroup Margin="20,20,20,0" Grid.Row="1" Grid.ColumnSpan="2"
+ FontSize="{Binding ActualWidth,ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='20,1093,20'}" Orientation="Horizontal" Header="SNR">
+ <TextBox Width="{Binding ActualWidth,ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='180,1093'}"
+ FontSize="{Binding ActualWidth,ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='15,1093,15'}"
+ x:Name="TbManualSnr" Style="{StaticResource EditorTextBoxStyle}"/>
+ </pu:FormGroup>
+ <StackPanel Margin="10" Grid.Row="2" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Right">
+ <Button Style="{StaticResource ModalButton}"
+ x:Name="scannerOkBtn"
+ Click="Button_Click"
+ Background="{DynamicResource PrimaryColor}"
+ Tag="OK" Content="{DynamicResource App.Continue}"/>
+ </StackPanel>
+ </Grid>
+ </Border>
+ </Canvas>-->
+
<!--<DockPanel Grid.Row="4">
<StatusBar>
--
Gitblit v1.9.1