alielie
2026-04-23 ef52fd6fd07508883dce4eb002acda59f0169e59
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<UserControl x:Class="Plugin.TestResult_WPF.DataTable"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Plugin.TestResult_WPF"
            xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
xmlns:pw="https://opensource.panuon.com/wpf"
xmlns:pu="https://opensource.panuon.com/wpf-ui"
xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
xmlns:dc="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
             mc:Ignorable="d"
             Background="#FFF"
             BorderBrush="Black"
             BorderThickness="1"
             x:Name="control"
             Loaded="UserControl_Loaded"
             d:DesignHeight="450" d:DesignWidth="800">
    <UserControl.Resources>
        <local:FontSizeConverter x:Key="FontSizeConverter"/>
        <dc:ReverseBoolConverter x:Key="reverseConverter"/>
    </UserControl.Resources>
    <Grid x:Name="grid">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="8.5*"/>
            <RowDefinition Height="1.5*"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid x:Name="infoGrid" Grid.Row="0" Background="#a1eafb">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
 
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
 
            <TextBlock FontSize="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=UserControl}, 
Converter={StaticResource FontSizeConverter}, ConverterParameter='20,940'}"
                   FontWeight="Bold"
                   Margin="0"
                   HorizontalAlignment="Center"
                   VerticalAlignment="Center" Text="{Binding title}"/>
 
            <ComboBox Grid.Row="1" FontSize="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=UserControl}, 
Converter={StaticResource FontSizeConverter}, ConverterParameter='15,940'}"
                      Style="{StaticResource FormComboxStyle}"
                      IsEnabled="{Binding IsTesting,Converter={StaticResource reverseConverter}}"
                      pu:ComboBoxHelper.ClearButtonVisibility="Collapsed"
                      BorderBrush="Black"
                      Height="26"
                      BorderThickness="0,1,0,0"
                      pu:ComboBoxHelper.Watermark="{DynamicResource Tr.ProductInfo}"
                      Width="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=UserControl}, 
Converter={StaticResource FontSizeConverter}, ConverterParameter='150,940'}"
                      SelectedValuePath="Content"
                      x:Name="CbProduct" SelectionChanged="CbProduct_SelectionChanged"/>
 
            <local:InfoTable x:Name="infoTable" Grid.Row="0" Grid.Column="1"
                             Grid.RowSpan="2"
               FontSize="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=UserControl}, 
            Converter={StaticResource FontSizeConverter}, ConverterParameter='12,940'}"></local:InfoTable>
        </Grid>
 
        <UniformGrid x:Name="mainGrid" Grid.Row="1" dp:UniformGridHelper.InnerBorder="1"
                     dp:UniformGridHelper.InnerBorderIgnore="Left,Right,Bottom">
        </UniformGrid>
 
        <!--<local:Chart Grid.Row="2" x:Name="chart" BorderThickness="0,1,0,1" BorderBrush="Black" 
                      MouseDoubleClick="chart_MouseDoubleClick"/>-->
 
        <StatusBar FontSize="14" Grid.Row="3">
            <StatusBar.ItemsPanel>
                <ItemsPanelTemplate>
                    <DockPanel/>
                </ItemsPanelTemplate>
            </StatusBar.ItemsPanel>
            <StatusBarItem DockPanel.Dock="Left">
                <Button Style="{StaticResource LinkButton}" Click="Button_Click_1" Content="{DynamicResource App.ScannerSetting}"/>
            </StatusBarItem>
 
            <StatusBarItem DockPanel.Dock="Right">
                <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="8">
                    <!--<Button Style="{StaticResource DeleteLink}" Click="Button_Click_2" Content="停止测试"/>-->
 
                    <StackPanel Orientation="Horizontal">
                        <Ellipse Width="10" Height="10">
                            <Ellipse.Style>
                                <Style TargetType="Ellipse">
                                    <Setter Property="Fill" Value="LightGray"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding TcpServerStatus,ElementName=control}" Value="ERROR">
                                            <Setter Property="Fill" Value="Red"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding TcpServerStatus,ElementName=control}" Value="RUNNING">
                                            <Setter Property="Fill" Value="Green"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Ellipse.Style>
                        </Ellipse>
                        <TextBlock Text="{Binding TcpServerInfo}"/>
                        <Button Padding="0" Margin="0" BorderThickness="0" Click="Button_Click">🔄</Button>
                    </StackPanel>
                </StackPanel>
            </StatusBarItem>
 
            <StatusBarItem DockPanel.Dock="Right">
                <Button Click="Manual_Cooler_Opt" x:Name="coolerSetting">
                    <Button.Style>
                        <Style TargetType="Button" BasedOn="{StaticResource LinkButton}">
                            <Setter Property="Content" Value="{DynamicResource Tr.CoolerSetting}"/>
                            <Setter Property="Foreground" Value="{DynamicResource PrimaryColor}"/>
                        </Style>
                    </Button.Style>
                </Button>
            </StatusBarItem>
 
            <StatusBarItem >
                <TextBox IsReadOnly="True" FontSize="16" Background="Transparent" BorderThickness="0" Text="{Binding statusText}"/>
            </StatusBarItem>
        </StatusBar>
 
        <UniformGrid Grid.Row="4" Rows="1">
            <!--<UniformGrid.ColumnDefinitions>
                <ColumnDefinition/>
                <ColumnDefinition/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </UniformGrid.ColumnDefinitions>-->
            <Button Click="ScanWindow_Click" Style="{StaticResource PrimaryButton}"
        Content="{DynamicResource Tr.Scan}"/>
            <Button Grid.Column="1" Click="ClearAllSnr_Click" Style="{StaticResource DangerButton}"
                    IsEnabled="{Binding IsTesting,Converter={StaticResource reverseBool}}"
Content="{DynamicResource Tr.ClearAllSNR}"/>
            <!--<Button Grid.Column="2" Click="SetStationGlobal_Click" Style="{StaticResource SuccessButton}"
        Content="{DynamicResource App.Start}"/> Background="#1296db"-->
 
            <Button Grid.Column="2" Click="Abort_Click" x:Name="abortBtn"
        Style="{DynamicResource DangerButton}" Background="#1296db" Content="Abort"/>
 
            <Button Grid.Column="3" Click="StartSingleClick">
                <Button.Style>
                    <Style TargetType="Button" BasedOn="{StaticResource SuccessButton}">
                        <Setter Property="Content" Value="{DynamicResource App.Start}"/>
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding IsTesting}" Value="True">
                                <Setter Property="Background" Value="{DynamicResource DangerVerBar}"/>
                                <Setter Property="Content" Value="停止测试"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Button.Style>
            </Button>
        </UniformGrid>
    </Grid>
</UserControl>