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 作为历史根节点

---
 Plugin.TsExecution/SingleControl.xaml |  231 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 113 insertions(+), 118 deletions(-)

diff --git a/Plugin.TsExecution/SingleControl.xaml b/Plugin.TsExecution/SingleControl.xaml
index 11d834d..4bbacd5 100644
--- a/Plugin.TsExecution/SingleControl.xaml
+++ b/Plugin.TsExecution/SingleControl.xaml
@@ -12,9 +12,11 @@
              xmlns:sys="clr-namespace:System;assembly=mscorlib"
              Loaded="UserControl_Loaded"
              Background="#ccc6c7"
+             PreviewMouseRightButtonDown="control_PreviewMouseRightButtonDown"
              FontSize="{Binding ActualHeight,RelativeSource={RelativeSource AncestorType=UserControl}, 
 Converter={StaticResource hfc}, ConverterParameter='12,816'}"
              x:Name="control"
+             SizeChanged="control_SizeChanged"
              d:DesignHeight="450" d:DesignWidth="800">
     <UserControl.Resources>
         <ResourceDictionary>
@@ -29,14 +31,14 @@
                 <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'}"/>
+Converter={StaticResource fc}, ConverterParameter='25,1093'}"/>
             </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'}"/>
+Converter={StaticResource fc}, ConverterParameter='25,1093'}"/>
             </Style>
             <Brush x:Key="passedColor">#beed00</Brush>
         </ResourceDictionary>
@@ -51,21 +53,20 @@
             <RowDefinition Height="Auto"/>
         </Grid.RowDefinitions>
 
-        <Grid dp:GridHelper.InnerBorder="1" dp:GridHelper.Space="5" 
-              dp:GridHelper.InnerBorderBrush="{StaticResource CommonBoarder}">
+        <Grid dp:GridHelper.InnerBorder="1" dp:GridHelper.Space="2" x:Name="tableHeader"
+              dp:GridHelper.InnerBorderBrush="{DynamicResource CommonBoarder}">
             <Grid.RowDefinitions>
-                <RowDefinition Height="Auto"/>
                 <RowDefinition/>
                 <RowDefinition/>
             </Grid.RowDefinitions>
             <Grid.ColumnDefinitions>
                 <ColumnDefinition Width="Auto"/>
-                <ColumnDefinition/>
+                <ColumnDefinition />
+                <ColumnDefinition Width="Auto"/>
             </Grid.ColumnDefinitions>
             <StackPanel Grid.RowSpan="3">
                 <StackPanel.Style>
                     <Style TargetType="StackPanel">
-                        <Setter Property="Background" Value="DeepSkyBlue"/>
                         <Style.Triggers>
                             <DataTrigger Binding="{Binding Status}" Value="Passed">
                                 <Setter Property="Background" Value="{StaticResource passedColor}"/>
@@ -74,10 +75,10 @@
                                 <Setter Property="Background" Value="Gold"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Failed">
-                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                <Setter Property="Background" Value="{DynamicResource DangerColor}"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Failed">
-                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                <Setter Property="Background" Value="{DynamicResource DangerColor}"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Ready">
                                 <Setter Property="Background" Value="DeepSkyBlue"/>
@@ -89,6 +90,7 @@
                 <Label>
                     <Label.Style>
                         <Style TargetType="Label">
+                            <Setter Property="VerticalAlignment" Value="Center"/>
                             <Setter Property="Padding" Value="10,10,10,0"/>
                             <Setter Property="Margin" Value="0"/>
                             <Setter Property="FontFamily" Value="{StaticResource iconfont}"/>
@@ -108,11 +110,11 @@
                                 </DataTrigger>
                                 <DataTrigger Binding="{Binding Status}" Value="Failed">
                                     <Setter Property="Content" Value="&#xe604;"/>
-                                    <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                    <Setter Property="Background" Value="{DynamicResource DangerColor}"/>
                                 </DataTrigger>
                                 <DataTrigger Binding="{Binding Status}" Value="Failed">
                                     <Setter Property="Content" Value="&#xe604;"/>
-                                    <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                    <Setter Property="Background" Value="{DynamicResource DangerColor}"/>
                                 </DataTrigger>
                                 <DataTrigger Binding="{Binding Status}" Value="Ready">
                                     <Setter Property="Content" Value="&#xe6ae;"/>
@@ -123,9 +125,8 @@
                     </Label.Style>
                 </Label>
 
-                <Label Content="{Binding Status}" VerticalContentAlignment="Center"
-                       Padding="0"
-                       Margin="0"
+                <Label Content="{Binding Status}" VerticalAlignment="Center" VerticalContentAlignment="Center"
+                       Padding="0" Margin="0"
                        HorizontalContentAlignment="Center"
                        Foreground="#FFF"
                        FontWeight="Bold"
@@ -135,7 +136,7 @@
 
             <!--<Label HorizontalContentAlignment="Left" Grid.Column="1" Content="{Binding Status}"/>-->
 
-            <Label Style="{StaticResource baseLabel}" Background="#FFF" Grid.Row="1" Grid.Column="1">
+            <Label Style="{StaticResource baseLabel}" Background="#FFF" Grid.Row="0" Grid.Column="1">
                 <StackPanel Orientation="Horizontal">
                     <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Total}"/>
                     <TextBlock Style="{StaticResource baseText}" Margin="2,0,18,0" Text="{Binding TotalNum}"/>
@@ -150,7 +151,7 @@
                 </StackPanel>
             </Label>
 
-            <Label Style="{StaticResource baseLabel}" Background="#FFF" Grid.Row="2" Grid.Column="1">
+            <Label Style="{StaticResource baseLabel}" Background="#FFF" Grid.Row="1" Grid.Column="1">
                 <StackPanel Orientation="Horizontal">
                     <Label Style="{StaticResource baseLabel}" Content="{DynamicResource Ts.CurrentSnr}"/>
                     <Label Style="{StaticResource baseLabel}" Margin="2,0,18,0" Content="{Binding Barcode}"/>
@@ -158,9 +159,12 @@
                     <Label Style="{StaticResource baseLabel}" Margin="2,0,18,0" Content="{Binding ElapseTime}"/>
                 </StackPanel>
             </Label>
+            <Border x:Name="screenContainer" BorderThickness="0" Grid.Column="2" Grid.RowSpan="2" MouseLeftButtonDown="screenContainer_MouseLeftButtonDown">
+               
+            </Border>
         </Grid>
 
-        <Grid Grid.Row="2" x:Name="simplePanel" dp:GridHelper.Space="5" dp:GridHelper.SpaceIgnore="TOP">
+        <Grid Grid.Row="2" x:Name="simplePanel" dp:GridHelper.Space="2" dp:GridHelper.SpaceIgnore="TOP">
             <Grid.RowDefinitions>
                 <RowDefinition/>
                 <RowDefinition Height="Auto"/>
@@ -180,7 +184,7 @@
                                 <Setter Property="Foreground" Value="#000"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Failed">
-                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                <Setter Property="Background" Value="{DynamicResource DangerColor}"/>
                                 <Setter Property="Content" Value="--FAIL--"/>
                                 <Setter Property="Foreground" Value="#000"/>
                             </DataTrigger>
@@ -326,7 +330,7 @@
                                             <Setter TargetName="text" Property="Foreground" Value="#000"/>
                                         </DataTrigger>
                                         <DataTrigger Binding="{Binding Result}" Value="Failed">
-                                            <Setter TargetName="border" Property="Background" Value="{StaticResource DangerColor}"/>
+                                            <Setter TargetName="border" Property="Background" Value="{DynamicResource DangerColor}"/>
                                             <Setter TargetName="text" Property="Foreground" Value="#000"/>
                                         </DataTrigger>
                                     </DataTemplate.Triggers>
@@ -337,105 +341,89 @@
                 </ListView.View>
             </ListView>-->
 
-            <DataGrid Grid.Row="0" Style="{StaticResource DefaultDataGrid}" 
-                      Margin="5,0,5,5"
-                  pu:DataGridHelper.ColumnHeaderFontSize="{Binding ActualWidth,
-            ElementName=control,
-Converter={StaticResource fc}, ConverterParameter='15,1093,15,22'}"
-            FontSize="{Binding ActualWidth,
-            ElementName=control,
-Converter={StaticResource fc}, ConverterParameter='15,1093,15,20'}"
-                  pu:DataGridHelper.ColumnHeaderPadding="3"
+           
+
+            <Canvas Grid.Row="0" x:Name="canvas" Background="Transparent">
+                <DataGrid Canvas.Left="0" Canvas.Top="0" Height="{Binding ActualHeight,ElementName=canvas}" 
+                          Width="{Binding ActualWidth,ElementName=canvas}" 
+                          Style="{StaticResource DefaultDataGrid}" Margin="2,0,2,2"
+                  FontSize="{DynamicResource tableFontSize}"
                   dp:DataGridHelper.ShowRowNumber="True"
                   VirtualizingPanel.IsContainerVirtualizable="True"
                   VirtualizingPanel.IsVirtualizing="True" 
                   VirtualizingPanel.VirtualizationMode="Recycling"
                   RowHeight="{StaticResource nanD}"
                   ColumnHeaderHeight="{Binding ActualWidth,ElementName=control,
-Converter={StaticResource fc}, ConverterParameter='30,1093,-1,45'}"
-                  ItemsSource="{Binding Datasource}"
-                  x:Name="table">
-                <DataGrid.Resources>
-                    <Style TargetType="DataGridCell" 
-       BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridCellStyle}}">
-                        <Setter Property="Background" Value="Transparent"/>
-                        <Setter Property="Padding" Value="2"/>
-                        <Setter Property="BorderThickness" Value="0"/>
-                        <Setter Property="Background" Value="Transparent"/>
-                    </Style>
+Converter={StaticResource fc}, ConverterParameter='32,1093,30,45'}"
+                  HorizontalScrollBarVisibility="Disabled"
+                  ItemsSource="{Binding Datasource}" x:Name="table">
 
-                    <Style TargetType="DataGridColumnHeader" 
-BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridColumnHeaderStyle}}">
-                        <Setter Property="Padding" Value="5"/>
-                        <Setter Property="BorderThickness" Value="0"/>
-                    </Style>
-                </DataGrid.Resources>
-
-                <DataGrid.Columns>
-                    <DataGridTextColumn Header="#" 
-                                        ElementStyle="{StaticResource TableTextBlock}"
-                        Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" 
-                                    Width="60"/>
-                    <DataGridTextColumn Width="*" Binding="{Binding Name}" 
-                                        ElementStyle="{StaticResource TableTextBlock}">
-                        <DataGridTextColumn.Header>
-                            <TextBlock Text="{DynamicResource Test.Name}"/>
-                        </DataGridTextColumn.Header>
-                    </DataGridTextColumn>
-                    <DataGridTextColumn Width="100" Binding="{Binding Unit}" 
-                                        ElementStyle="{StaticResource TableTextBlock}">
-                        <DataGridTextColumn.Header>
-                            <TextBlock Text="{DynamicResource Test.Unit}"/>
-                        </DataGridTextColumn.Header>
-                    </DataGridTextColumn>
-                    <DataGridTextColumn Width="*" Binding="{Binding Value}" 
-                                        ElementStyle="{StaticResource TableTextBlock}">
-                        <DataGridTextColumn.Header>
-                            <TextBlock Text="{DynamicResource Test.Value}"/>
-                        </DataGridTextColumn.Header>
-                    </DataGridTextColumn>
-                    <DataGridTextColumn Width="*" Binding="{Binding LimitDown}" 
-                                        ElementStyle="{StaticResource TableTextBlock}">
-                        <DataGridTextColumn.Header>
-                            <TextBlock Text="{DynamicResource Test.LimitDown}"/>
-                        </DataGridTextColumn.Header>
-                    </DataGridTextColumn>
-                    <DataGridTextColumn Width="*" Binding="{Binding LimitUp}" 
-                                        ElementStyle="{StaticResource TableTextBlock}">
-                        <DataGridTextColumn.Header>
-                            <TextBlock Text="{DynamicResource Test.LimitUp}"/>
-                        </DataGridTextColumn.Header>
-                    </DataGridTextColumn>
-                    <DataGridTextColumn Width="180" Binding="{Binding ConsumeTime}"
-                    ElementStyle="{StaticResource TableTextBlock}">
-                        <DataGridTextColumn.Header>
-                            <TextBlock Text="{DynamicResource Test.ConsumeTime}"/>
-                        </DataGridTextColumn.Header>
-                    </DataGridTextColumn>
-                    <DataGridTemplateColumn Width="120">
-                        <DataGridTemplateColumn.Header>
-                            <TextBlock Text="{DynamicResource Test.Result}"/>
-                        </DataGridTemplateColumn.Header>
-                        <DataGridTemplateColumn.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>
-                        </DataGridTemplateColumn.CellTemplate>
-                    </DataGridTemplateColumn>
-                </DataGrid.Columns>
-            </DataGrid>
+                    <DataGrid.Columns>
+                        <DataGridTextColumn Header="#" 
+                            ElementStyle="{StaticResource TableTextBlock}"
+            Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" 
+                        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="0.8*" Binding="{Binding Unit}" 
+                            ElementStyle="{StaticResource TableTextBlock}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Test.Unit}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+                        <DataGridTextColumn Width="2*" Binding="{Binding Value}" 
+                            ElementStyle="{StaticResource TableTextBlock}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Test.Value}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+                        <DataGridTextColumn Width="1.5*" Binding="{Binding LimitDown}" 
+                            ElementStyle="{StaticResource TableTextBlock}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Test.LimitDown}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+                        <DataGridTextColumn Width="1.5*" Binding="{Binding LimitUp}" 
+                            ElementStyle="{StaticResource TableTextBlock}">
+                            <DataGridTextColumn.Header>
+                                <TextBlock Text="{DynamicResource Test.LimitUp}"/>
+                            </DataGridTextColumn.Header>
+                        </DataGridTextColumn>
+                        <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>
+                            <DataGridTemplateColumn.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="{DynamicResource DangerColor}"/>
+                                            <Setter TargetName="text" Property="Foreground" Value="#000"/>
+                                        </DataTrigger>
+                                    </DataTemplate.Triggers>
+                                </DataTemplate>
+                            </DataGridTemplateColumn.CellTemplate>
+                        </DataGridTemplateColumn>
+                    </DataGrid.Columns>
+                </DataGrid>
+            </Canvas>
 
             <Grid Grid.Row="1" Height="20" Margin="0">
                 <ProgressBar Grid.Row="3" x:Name="testProcess" Value="{Binding ProcessValue}"/>
@@ -446,11 +434,12 @@
 
             <Grid Background="#f1eded" Grid.Row="2" Height="25">
                 <DockPanel>
-                    <Label Padding="0" FontSize="12" VerticalContentAlignment="Center" Content="{Binding CurrentStep}"/>
+                    <Label Margin="10,0,0,0" Padding="0" FontSize="16" VerticalContentAlignment="Center" Content="{Binding SocketName}"/>
+                    <Label Margin="20,0,0,0" Padding="0" FontSize="14" 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="鎵爜鏋缃�">
+                                Margin="0,0,10,0" Click="Button_Click" Content="{DynamicResource App.ScannerSetting}">
                             <Button.Style>
                                 <Style TargetType="Button" BasedOn="{StaticResource LinkButton}">
                                     <Style.Triggers>
@@ -467,7 +456,13 @@
 VerticalContentAlignment="Center" Content="{DynamicResource Ts.ProbeCount}"/>
                         <Label Padding="0" FontSize="12"  Margin="0,0,15,0"
 VerticalAlignment="Center"
-VerticalContentAlignment="Center" Content="{Binding ProbeCount}"/>
+VerticalContentAlignment="Center">
+                            <TextBlock>
+                                <Run Text="{Binding ProbeCount}"/>
+                                <Run Text="/"/>
+                                <Run Text="{Binding ProbeWarn,Mode=OneWay}"/>
+                            </TextBlock>
+                        </Label>
 
                         <StackPanel x:Name="probeWarnPanel" Orientation="Horizontal" Visibility="Collapsed">
                             <Label x:Name="alarmLabel" Padding="0" FontSize="12" 
@@ -475,7 +470,7 @@
 VerticalContentAlignment="Center" Content="{DynamicResource Ts.ProbeAlarmCount}"/>
                             <Label x:Name="alarmValue" Padding="0" FontSize="12" 
 VerticalAlignment="Center"
-VerticalContentAlignment="Center" Content="{Binding ProbeWarn}"/>
+VerticalContentAlignment="Center" Content="{Binding ProbeWarn,Mode=OneWay}"/>
                         </StackPanel>
 
                         <Button FontSize="12" Style="{StaticResource LinkButton}" 
@@ -508,7 +503,7 @@
                         <ColumnDefinition Width="Auto"/>
                         <ColumnDefinition />
                     </Grid.ColumnDefinitions>
-                    <Border Padding="10,5,0,5" Grid.ColumnSpan="2" Background="{StaticResource WarningColor}"
+                    <Border Padding="10,5,0,5" Grid.ColumnSpan="2" Background="{DynamicResource WarningColor}"
                            CornerRadius="5,5,0,0">
                         <Label Padding="0" Margin="0" Foreground="#FFF" Content="{DynamicResource App.Warn}"/>
                     </Border>
@@ -526,7 +521,7 @@
                         <Button Style="{StaticResource ModalButton}" 
                                 x:Name="continuePauseBtn"
                                 Click="Button_Click"
-                                Background="{StaticResource WarningColor}"
+                                Background="{DynamicResource WarningColor}"
                                 Tag="OK" Content="{DynamicResource App.Continue}"/>
                     </StackPanel>
                 </Grid>
@@ -546,7 +541,7 @@
                         <ColumnDefinition Width="Auto"/>
                         <ColumnDefinition />
                     </Grid.ColumnDefinitions>
-                    <Border Padding="10,5,0,5" Grid.ColumnSpan="2" Background="{StaticResource PrimaryColor}"
+                    <Border Padding="10,5,0,5" Grid.ColumnSpan="2" Background="{DynamicResource PrimaryColor}"
                    CornerRadius="5,5,0,0">
                         <Label Padding="0" Margin="0" Foreground="#FFF" Content="璇锋壂鐮�"/>
                     </Border>

--
Gitblit v1.9.1