alielie
2025-05-20 99df058a665ea04065a23e729ec79a2f23f79881
Plugin.TsExecution/SingleControl.xaml
@@ -9,19 +9,27 @@
             xmlns:local="clr-namespace:Plugin.TsExecution"
             mc:Ignorable="d" 
             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"/>
            <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="5"/>
            <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>
    </UserControl.Resources>
    <Grid>
@@ -44,20 +52,45 @@
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Label Grid.RowSpan="3">
            <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}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Testing">
                                <Setter Property="Background" Value="Gold"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Failed">
                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Failed">
                                <Setter Property="Background" Value="{StaticResource DangerColor}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Ready">
                                <Setter Property="Background" Value="DeepSkyBlue"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </StackPanel.Style>
                <Label>
                <Label.Style>
                    <Style TargetType="Label">
                        <Setter Property="Padding" Value="10"/>
                            <Setter Property="Padding" Value="10,10,10,0"/>
                            <Setter Property="Margin" Value="0"/>
                        <Setter Property="FontFamily" Value="{StaticResource iconfont}"/>
                        <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"/>
                            <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="Lime"/>
                                    <Setter Property="Background" Value="{StaticResource passedColor}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding Status}" Value="Testing">
                                <Setter Property="Content" Value="&#xeb61;"/>
@@ -80,41 +113,104 @@
                </Label.Style>
            </Label>
            <Label HorizontalContentAlignment="Left" Grid.Column="1" Content="{Binding Status}"/>
                <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 Style="{StaticResource baseLabel}" Grid.Row="1" Grid.Column="1">
            <!--<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="5,0,20,0" Text="{Binding TotalNum}"/>
                    <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="5,0,20,0" Text="{Binding PassNum}"/>
                    <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="5,0,20,0" Text="{Binding FailNum}"/>
                    <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="5,0,20,0" Text="{Binding PassRate,StringFormat={}{0:P2}}"/>
                    <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}" Grid.Row="2" Grid.Column="1">
            <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="5,0,20,0" Content="{Binding Barcode}"/>
                    <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="5,0,20,0" Content="{Binding ElapseTime}"/>
                    <Label Style="{StaticResource baseLabel}" Margin="2,0,18,0" Content="{Binding ElapseTime}"/>
                </StackPanel>
            </Label>
        </Grid>
        <DataGrid Grid.Row="2" Style="{StaticResource DefaultDataGrid}"
                  pu:DataGridHelper.ColumnHeaderFontSize="12"
        <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>
            <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>
        <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="{Binding ActualWidth,ElementName=control,
Converter={StaticResource fc}, ConverterParameter='35,1093,-1,45'}"
                  ColumnHeaderHeight="{Binding ActualWidth,ElementName=control,
Converter={StaticResource fc}, ConverterParameter='30,1093,-1,45'}"
                  ItemsSource="{Binding Datasource}"
                  x:Name="table">
            <DataGrid.Resources>
@@ -144,29 +240,35 @@
                </DataGridTemplateColumn>-->
                <DataGridTextColumn Header="#"
                                        ElementStyle="{StaticResource TableTextBlock}"
                                    Binding="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" 
                                    Width="40"/>
                <DataGridTextColumn Width="*" Binding="{Binding Name}">
                                    Width="60"/>
                    <DataGridTextColumn Width="*" Binding="{Binding Name}"
                                        ElementStyle="{StaticResource TableTextBlock}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.Name}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding Unit}">
                    <DataGridTextColumn Width="*" Binding="{Binding Unit}"
                                        ElementStyle="{StaticResource TableTextBlock}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.Unit}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding Value}">
                    <DataGridTextColumn Width="*" Binding="{Binding Value}"
                                        ElementStyle="{StaticResource TableTextBlock}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.Value}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding LimitDown}">
                    <DataGridTextColumn Width="*" Binding="{Binding LimitDown}"
                                        ElementStyle="{StaticResource TableTextBlock}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.LimitDown}"/>
                    </DataGridTextColumn.Header>
                </DataGridTextColumn>
                <DataGridTextColumn Width="*" Binding="{Binding LimitUp}">
                    <DataGridTextColumn Width="*" Binding="{Binding LimitUp}"
                                        ElementStyle="{StaticResource TableTextBlock}">
                    <DataGridTextColumn.Header>
                        <TextBlock Text="{DynamicResource Test.LimitUp}"/>
                    </DataGridTextColumn.Header>
@@ -177,13 +279,17 @@
                    </DataGridTemplateColumn.Header>
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock x:Name="text" VerticalAlignment="Center" Text="{Binding Result}"/>
                                <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="text" Property="Foreground" Value="Green"/>
                                        <Setter TargetName="border" Property="Background" Value="{StaticResource passedColor}"/>
                                        <Setter TargetName="text" Property="Foreground" Value="#000"/>
                                </DataTrigger>
                                <DataTrigger Binding="{Binding Result}" Value="Failed">
                                    <Setter TargetName="text" Property="Foreground" Value="Red"/>
                                        <Setter TargetName="border" Property="Background" Value="{StaticResource DangerColor}"/>
                                        <Setter TargetName="text" Property="Foreground" Value="#000"/>
                                </DataTrigger>
                            </DataTemplate.Triggers>
                        </DataTemplate>
@@ -191,15 +297,17 @@
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
        <Grid Grid.Row="3" Height="20" Margin="0">
            <ProgressBar Grid.Row="3" x:Name="testProcess" />
            <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 Background="#f1eded" Grid.Row="4" Height="25">
            <Grid Background="#f1eded" Grid.Row="2" Height="25">
            <DockPanel>
                <Label Padding="0" VerticalContentAlignment="Center" Content="{Binding CurrentStep}"/>
                    <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" 
@@ -218,7 +326,7 @@
VerticalContentAlignment="Center" Content="{Binding ProbeWarn}"/>
                    </StackPanel>
                    <Button Style="{StaticResource LinkButton}" x:Name="clear" Margin="10,0,0,0" Click="Button_Click"
                        <Button FontSize="12" Style="{StaticResource LinkButton}" x:Name="clear" Margin="10,0,0,0" Click="Button_Click"
                            Content="{DynamicResource App.Clear}"/>
                </StackPanel>
@@ -227,6 +335,51 @@
VerticalContentAlignment="Center" Content="{DynamicResource Ts.ProbeAlarm}"/>
            </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>
        <!--<DockPanel Grid.Row="4">
            <StatusBar>
                <StatusBarItem>