From 0940f31b7eba1cf6b6a8c1fca72d97cf686e79f2 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期五, 04 七月 2025 10:43:00 +0800
Subject: [PATCH] 优化插件,完善TreeListView

---
 Plugin.TsExecution/SingleControl.xaml |  483 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 347 insertions(+), 136 deletions(-)

diff --git a/Plugin.TsExecution/SingleControl.xaml b/Plugin.TsExecution/SingleControl.xaml
index 77ef0cd..6d87ceb 100644
--- a/Plugin.TsExecution/SingleControl.xaml
+++ b/Plugin.TsExecution/SingleControl.xaml
@@ -8,20 +8,36 @@
              xmlns:pu="https://opensource.panuon.com/wpf-ui"
              xmlns:local="clr-namespace:Plugin.TsExecution"
              mc:Ignorable="d" 
+             xmlns:sys="clr-namespace:System;assembly=mscorlib"
              Loaded="UserControl_Loaded"
-             Background="{StaticResource WarningColorContract}"
+             Background="#ccc6c7"
+             FontSize="{Binding ActualHeight,RelativeSource={RelativeSource AncestorType=UserControl}, 
+Converter={StaticResource hfc}, ConverterParameter='12,816'}"
+             x:Name="control"
              d:DesignHeight="450" d:DesignWidth="800">
     <UserControl.Resources>
-        <Style TargetType="Label" x:Key="baseLabel">
-            <Setter Property="HorizontalContentAlignment" Value="Left"/>
-            <Setter Property="VerticalContentAlignment" Value="Center"/>
-            <Setter Property="Padding" Value="5"/>
-        </Style>
-        <Style TargetType="TextBlock" x:Key="baseText">
-            <Setter Property="HorizontalAlignment" Value="Left"/>
-            <Setter Property="VerticalAlignment" Value="Center"/>
-            <Setter Property="Padding" Value="5"/>
-        </Style>
+        <ResourceDictionary>
+            <ResourceDictionary.MergedDictionaries>
+                <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,
+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,
+Converter={StaticResource fc}, ConverterParameter='20,1093,20'}"/>
+            </Style>
+            <Brush x:Key="passedColor">#beed00</Brush>
+        </ResourceDictionary>
     </UserControl.Resources>
 
     <Grid>
@@ -44,97 +60,184 @@
                 <ColumnDefinition Width="Auto"/>
                 <ColumnDefinition/>
             </Grid.ColumnDefinitions>
-            <Label Grid.RowSpan="3">
-                <Label.Style>
-                    <Style TargetType="Label">
-                        <Setter Property="Padding" Value="10"/>
-                        <Setter Property="FontFamily" Value="{StaticResource iconfont}"/>
+            <StackPanel Grid.RowSpan="3">
+                <StackPanel.Style>
+                    <Style TargetType="StackPanel">
                         <Setter Property="Background" Value="DeepSkyBlue"/>
-                        <Setter Property="Foreground" Value="White"/>
-                        <Setter Property="HorizontalContentAlignment" Value="Center"/>
-                        <Setter Property="VerticalContentAlignment" Value="Center"/>
-                        <Setter Property="FontSize" Value="50"/>
                         <Style.Triggers>
                             <DataTrigger Binding="{Binding Status}" Value="Passed">
-                                <Setter Property="Content" Value="&#xe65a;"/>
-                                <Setter Property="Background" Value="Lime"/>
+                                <Setter Property="Background" Value="{StaticResource passedColor}"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Testing">
-                                <Setter Property="Content" Value="&#xeb61;"/>
                                 <Setter Property="Background" Value="Gold"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Failed">
-                                <Setter Property="Content" Value="&#xe604;"/>
                                 <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Failed">
-                                <Setter Property="Content" Value="&#xe604;"/>
                                 <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                             </DataTrigger>
                             <DataTrigger Binding="{Binding Status}" Value="Ready">
-                                <Setter Property="Content" Value="&#xe6ae;"/>
                                 <Setter Property="Background" Value="DeepSkyBlue"/>
+                            </DataTrigger>
+                        </Style.Triggers>
+                    </Style>
+                </StackPanel.Style>
+
+                <Label>
+                    <Label.Style>
+                        <Style TargetType="Label">
+                            <Setter Property="Padding" Value="10,10,10,0"/>
+                            <Setter Property="Margin" Value="0"/>
+                            <Setter Property="FontFamily" Value="{StaticResource iconfont}"/>
+                            <Setter Property="Foreground" Value="White"/>
+                            <Setter Property="HorizontalContentAlignment" Value="Center"/>
+                            <Setter Property="VerticalContentAlignment" Value="Center"/>
+                            <Setter Property="FontSize" Value="{Binding ActualWidth,ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='50,816'}"/>
+                            <Style.Triggers>
+                                <DataTrigger Binding="{Binding Status}" Value="Passed">
+                                    <Setter Property="Content" Value="&#xe65a;"/>
+                                    <Setter Property="Background" Value="{StaticResource passedColor}"/>
+                                </DataTrigger>
+                                <DataTrigger Binding="{Binding Status}" Value="Testing">
+                                    <Setter Property="Content" Value="&#xeb61;"/>
+                                    <Setter Property="Background" Value="Gold"/>
+                                </DataTrigger>
+                                <DataTrigger Binding="{Binding Status}" Value="Failed">
+                                    <Setter Property="Content" Value="&#xe604;"/>
+                                    <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                </DataTrigger>
+                                <DataTrigger Binding="{Binding Status}" Value="Failed">
+                                    <Setter Property="Content" Value="&#xe604;"/>
+                                    <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                </DataTrigger>
+                                <DataTrigger Binding="{Binding Status}" Value="Ready">
+                                    <Setter Property="Content" Value="&#xe6ae;"/>
+                                    <Setter Property="Background" Value="DeepSkyBlue"/>
+                                </DataTrigger>
+                            </Style.Triggers>
+                        </Style>
+                    </Label.Style>
+                </Label>
+
+                <Label Content="{Binding Status}" VerticalContentAlignment="Center"
+                       Padding="0"
+                       Margin="0"
+                       HorizontalContentAlignment="Center"
+                       Foreground="#FFF"
+                       FontWeight="Bold"
+                       FontSize="{Binding ActualWidth,ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='15,816'}"/>
+            </StackPanel>
+
+            <!--<Label HorizontalContentAlignment="Left" Grid.Column="1" Content="{Binding Status}"/>-->
+
+            <Label Style="{StaticResource baseLabel}" Background="#FFF" Grid.Row="1" 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}"/>
+                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Pass}"/>
+                    <TextBlock Style="{StaticResource baseText}" Margin="2,0,18,0" Text="{Binding PassNum}"/>
+                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Fail}"/>
+                    <TextBlock Style="{StaticResource baseText}" Margin="2,0,18,0" Text="{Binding FailNum}"/>
+                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.PassRate}"/>
+                    <TextBlock Style="{StaticResource baseText}" Margin="2,0,18,0" Text="{Binding PassRate,StringFormat={}{0:P2}}"/>
+                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.ProbeCount}"/>
+                    <TextBlock Style="{StaticResource baseText}" Margin="2,0,18,0" Text="{Binding ProbeCount}"/>
+                </StackPanel>
+            </Label>
+
+            <Label Style="{StaticResource baseLabel}" Background="#FFF" Grid.Row="2" 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}"/>
+                    <Label Style="{StaticResource baseLabel}" Content="{DynamicResource Ts.TimeSpan}"/>
+                    <Label Style="{StaticResource baseLabel}" Margin="2,0,18,0" Content="{Binding ElapseTime}"/>
+                </StackPanel>
+            </Label>
+        </Grid>
+
+        <Grid Grid.Row="2" x:Name="simplePanel" dp:GridHelper.Space="5" dp:GridHelper.SpaceIgnore="TOP">
+            <Grid.RowDefinitions>
+                <RowDefinition/>
+                <RowDefinition Height="Auto"/>
+            </Grid.RowDefinitions>
+            <Label VerticalContentAlignment="Center"
+                       HorizontalContentAlignment="Center"
+                       FontSize="{Binding ActualWidth,ElementName=control,
+Converter={StaticResource fc}, ConverterParameter='50,816'}">
+                <Label.Style>
+                    <Style TargetType="Label">
+                        <Setter Property="Foreground" Value="#848286"/>
+                        <Setter Property="Content" Value="{Binding CurrentStep}"/>
+                        <Style.Triggers>
+                            <DataTrigger Binding="{Binding Status}" Value="Passed">
+                                <Setter Property="Background" Value="{StaticResource passedColor}"/>
+                                <Setter Property="Content" Value="--PASS--"/>
+                                <Setter Property="Foreground" Value="#000"/>
+                            </DataTrigger>
+                            <DataTrigger Binding="{Binding Status}" Value="Failed">
+                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
+                                <Setter Property="Content" Value="--FAIL--"/>
+                                <Setter Property="Foreground" Value="#000"/>
                             </DataTrigger>
                         </Style.Triggers>
                     </Style>
                 </Label.Style>
             </Label>
-
-            <Label HorizontalContentAlignment="Left" Grid.Column="1" Content="{Binding Status}"/>
-
-            <Label Style="{StaticResource baseLabel}" Grid.Row="1" Grid.Column="1">
-                <StackPanel Orientation="Horizontal">
-                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Total}"/>
-                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding TotalNum}"/>
-                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Pass}"/>
-                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding PassNum}"/>
-                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.Fail}"/>
-                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding FailNum}"/>
-                    <TextBlock Style="{StaticResource baseText}" Text="{DynamicResource Ts.PassRate}"/>
-                    <TextBlock Style="{StaticResource baseText}" Margin="5,0,20,0" Text="{Binding PassRate,StringFormat={}{0:P2}}"/>
-                </StackPanel>
-            </Label>
-
-            <Label Style="{StaticResource baseLabel}" Grid.Row="2" Grid.Column="1">
-                <StackPanel Orientation="Horizontal">
-                    <Label Style="{StaticResource baseLabel}" Content="{DynamicResource Ts.CurrentSnr}"/>
-                    <Label Style="{StaticResource baseLabel}" Margin="5,0,20,0" Content="{Binding Barcode}"/>
-                    <Label Style="{StaticResource baseLabel}" Content="{DynamicResource Ts.TimeSpan}"/>
-                    <Label Style="{StaticResource baseLabel}" Margin="5,0,20,0" Content="{Binding ElapseTime}"/>
-                </StackPanel>
-            </Label>
+            <ProgressBar Grid.Row="1" MinHeight="20" Value="{Binding ProcessValue}"
+                         Height="{Binding ActualHeight,ElementName=control,
+Converter={StaticResource hfc}, ConverterParameter='30,816'}"/>
+            <Label Grid.Row="1" 
+                   VerticalContentAlignment="Center"
+                   HorizontalContentAlignment="Center"
+                   Content="{Binding ProcessValueLabel}" Background="Transparent" Foreground="#000"/>
         </Grid>
 
-        <DataGrid Grid.Row="2" Style="{StaticResource DefaultDataGrid}" 
-                  pu:DataGridHelper.ColumnHeaderFontSize="12"
+        <Grid Grid.Row="2" x:Name="detailPanel">
+            <Grid.RowDefinitions>
+                <RowDefinition/>
+                <RowDefinition Height="Auto"/>
+                <RowDefinition Height="Auto"/>
+            </Grid.RowDefinitions>
+
+            <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"
                   dp:DataGridHelper.ShowRowNumber="True"
                   VirtualizingPanel.IsContainerVirtualizable="True"
                   VirtualizingPanel.IsVirtualizing="True" 
                   VirtualizingPanel.VirtualizationMode="Recycling"
-                  RowHeight="20"
-                  FontSize="12"
-                  ColumnHeaderHeight="30"
+                  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" 
+                <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>
+                        <Setter Property="Background" Value="Transparent"/>
+                        <Setter Property="Padding" Value="2"/>
+                        <Setter Property="BorderThickness" Value="0"/>
+                        <Setter Property="Background" Value="Transparent"/>
+                    </Style>
 
-                <Style TargetType="DataGridColumnHeader" 
+                    <Style TargetType="DataGridColumnHeader" 
 BasedOn="{StaticResource {x:Static pu:StyleKeys.DataGridColumnHeaderStyle}}">
-                    <Setter Property="Padding" Value="5"/>
-                    <Setter Property="BorderThickness" Value="0"/>
-                </Style>
-            </DataGrid.Resources>
+                        <Setter Property="Padding" Value="5"/>
+                        <Setter Property="BorderThickness" Value="0"/>
+                    </Style>
+                </DataGrid.Resources>
 
-            <DataGrid.Columns>
-                <!--<DataGridTemplateColumn Header="#" CanUserResize="False">
+                <DataGrid.Columns>
+                    <!--<DataGridTemplateColumn Header="#" CanUserResize="False">
                     <DataGridTemplateColumn.CellTemplate>
                         <DataTemplate>
                             <TextBlock Text="{Binding Converter={StaticResource rowNumber},
@@ -143,90 +246,198 @@
                     </DataGridTemplateColumn.CellTemplate>
                 </DataGridTemplateColumn>-->
 
-                <DataGridTextColumn Header="#"
-                                    Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" 
-                                    Width="40"/>
-                <DataGridTextColumn Width="*" Binding="{Binding Name}">
-                    <DataGridTextColumn.Header>
-                        <TextBlock Text="{DynamicResource Test.Name}"/>
-                    </DataGridTextColumn.Header>
-                </DataGridTextColumn>
-                <DataGridTextColumn Width="*" Binding="{Binding Unit}">
-                    <DataGridTextColumn.Header>
-                        <TextBlock Text="{DynamicResource Test.Unit}"/>
-                    </DataGridTextColumn.Header>
-                </DataGridTextColumn>
-                <DataGridTextColumn Width="*" Binding="{Binding Value}">
-                    <DataGridTextColumn.Header>
-                        <TextBlock Text="{DynamicResource Test.Value}"/>
-                    </DataGridTextColumn.Header>
-                </DataGridTextColumn>
-                <DataGridTextColumn Width="*" Binding="{Binding LimitDown}">
-                    <DataGridTextColumn.Header>
-                        <TextBlock Text="{DynamicResource Test.LimitDown}"/>
-                    </DataGridTextColumn.Header>
-                </DataGridTextColumn>
-                <DataGridTextColumn Width="*" Binding="{Binding LimitUp}">
-                    <DataGridTextColumn.Header>
-                        <TextBlock Text="{DynamicResource Test.LimitUp}"/>
-                    </DataGridTextColumn.Header>
-                </DataGridTextColumn>
-                <DataGridTemplateColumn Width="*">
-                    <DataGridTemplateColumn.Header>
-                        <TextBlock Text="{DynamicResource Test.Result}"/>
-                    </DataGridTemplateColumn.Header>
-                    <DataGridTemplateColumn.CellTemplate>
-                        <DataTemplate>
-                            <TextBlock x:Name="text" VerticalAlignment="Center" Text="{Binding Result}"/>
-                            <DataTemplate.Triggers>
-                                <DataTrigger Binding="{Binding Result}" Value="Passed">
-                                    <Setter TargetName="text" Property="Foreground" Value="Green"/>
-                                </DataTrigger>
-                                <DataTrigger Binding="{Binding Result}" Value="Failed">
-                                    <Setter TargetName="text" Property="Foreground" Value="Red"/>
-                                </DataTrigger>
-                            </DataTemplate.Triggers>
-                        </DataTemplate>
-                    </DataGridTemplateColumn.CellTemplate>
-                </DataGridTemplateColumn>
-            </DataGrid.Columns>
-        </DataGrid>
-        <Grid Grid.Row="3" Height="20" Margin="0">
-            <ProgressBar Grid.Row="3" x:Name="testProcess" />
-            <Label Width="45" DockPanel.Dock="Right" x:Name="testProcessLabel" Padding="0" 
+                    <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>
+                    <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>
+
+            <Grid Grid.Row="1" Height="20" Margin="0">
+                <ProgressBar Grid.Row="3" x:Name="testProcess" Value="{Binding ProcessValue}"/>
+                <Label Width="45" DockPanel.Dock="Right" x:Name="testProcessLabel" Padding="0" 
+                       Content="{Binding ProcessValueLabel}"
                    VerticalContentAlignment="Center"/>
-        </Grid>
+            </Grid>
 
-        <Grid Background="#f1eded" Grid.Row="4" Height="25">
-            <DockPanel>
-                <Label Padding="0" VerticalContentAlignment="Center" Content="{Binding CurrentStep}"/>
+            <Grid Background="#f1eded" Grid.Row="2" Height="25">
+                <DockPanel>
+                    <Label Padding="0" FontSize="12" VerticalContentAlignment="Center" Content="{Binding CurrentStep}"/>
 
-                <StackPanel DockPanel.Dock="Right" Orientation="Horizontal" Margin="0,0,5,0">
-                    <Label Padding="0" FontSize="12" 
+                    <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}"/>
-                    <Label Padding="0" FontSize="12"  Margin="0,0,15,0"
+                        <Label Padding="0" FontSize="12"  Margin="0,0,15,0"
 VerticalAlignment="Center"
 VerticalContentAlignment="Center" Content="{Binding ProbeCount}"/>
 
-                    <StackPanel x:Name="probeWarnPanel" Orientation="Horizontal" Visibility="Collapsed">
-                        <Label x:Name="alarmLabel" Padding="0" FontSize="12" 
+                        <StackPanel x:Name="probeWarnPanel" Orientation="Horizontal" Visibility="Collapsed">
+                            <Label x:Name="alarmLabel" Padding="0" FontSize="12" 
 VerticalAlignment="Center"
 VerticalContentAlignment="Center" Content="{DynamicResource Ts.ProbeAlarmCount}"/>
-                        <Label x:Name="alarmValue" Padding="0" FontSize="12" 
+                            <Label x:Name="alarmValue" Padding="0" FontSize="12" 
 VerticalAlignment="Center"
 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}"/>
                     </StackPanel>
 
-                    <Button Style="{StaticResource LinkButton}" x:Name="clear" Margin="10,0,0,0" Click="Button_Click" 
-                            Content="{DynamicResource App.Clear}"/>
-                </StackPanel>
-
-                <Label x:Name="probeCountAlarm" Visibility="Collapsed" DockPanel.Dock="Left" Padding="30,0" FontSize="12" Foreground="Red"
+                    <Label x:Name="probeCountAlarm" Visibility="Collapsed" DockPanel.Dock="Left" Padding="30,0" FontSize="12" Foreground="Red"
 VerticalAlignment="Center"
 VerticalContentAlignment="Center" Content="{DynamicResource Ts.ProbeAlarm}"/>
-            </DockPanel>
+                </DockPanel>
+            </Grid>
         </Grid>
+
+        <Canvas Grid.Row="0" Grid.RowSpan="5" Visibility="Collapsed"
+                Background="#AAFFFFFF" x:Name="pausePanel" SizeChanged="pausePanel_Loaded">
+            <Border BorderBrush="#000" Background="#FFF" BorderThickness="0.5"
+                    CornerRadius="5"
+                    x:Name="visualModal">
+                <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 WarningColor}"
+                           CornerRadius="5,5,0,0">
+                        <Label Padding="0" Margin="0" Foreground="#FFF" Content="{DynamicResource App.Warn}"/>
+                    </Border>
+
+                    <TextBlock Margin="20,20,20,0" Grid.Row="1" 
+                               FontSize="40"
+                               FontFamily="/Panuon.WPF.UI;component/Resources/Fonts/#PanuonIcon"
+           Foreground="#F9D01A"
+           Text="&#xe931;"
+           />
+
+                    <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">
+                        <Button Style="{StaticResource ModalButton}" Tag="Cancel"
+                                x:Name="cancelPauseBtn"
+                                Click="Button_Click" Content="{DynamicResource App.Cancel}"/>
+                        <Button Style="{StaticResource ModalButton}" 
+                                x:Name="continuePauseBtn"
+                                Click="Button_Click"
+                                Background="{StaticResource WarningColor}"
+                                Tag="OK" Content="{DynamicResource App.Continue}"/>
+                    </StackPanel>
+                </Grid>
+            </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>
                 <StatusBarItem>

--
Gitblit v1.9.1