리크 테스트 gui
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

488 lines
26 KiB

<UserControl x:Class="leak_test_project.Views.HomeView"
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:leak_test_project.Views"
mc:Ignorable="d"
d:DesignHeight="850" d:DesignWidth="1100" Background="#F4F6F7">
<UserControl.Resources>
<!-- Unified Premium Legacy Style -->
<Style x:Key="HeaderLabel" TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="TextAlignment" Value="Left"/>
<Setter Property="Foreground" Value="#2C3E50"/>
<Setter Property="Margin" Value="12,0"/>
</Style>
<Style x:Key="ValueLabel" TargetType="TextBlock">
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Foreground" Value="#17202A"/>
</Style>
<Style x:Key="CellBorder" TargetType="Border">
<Setter Property="BorderBrush" Value="#BDC3C7"/>
<Setter Property="BorderThickness" Value="1.2"/>
<Setter Property="Background" Value="White"/>
<Setter Property="Padding" Value="0"/>
</Style>
<Style x:Key="HeaderBorder" TargetType="Border" BasedOn="{StaticResource CellBorder}">
<Setter Property="Background" Value="#EBEDEF"/>
</Style>
</UserControl.Resources>
<Grid Margin="12">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- LEFT CHANNEL -->
<Grid Grid.Column="0" Margin="0,0,6,0">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<!-- TITLE -->
<RowDefinition Height="42"/>
<!-- START TIME -->
<RowDefinition Height="42"/>
<!-- ID -->
<RowDefinition Height="42"/>
<!-- DATE/SERIAL -->
<RowDefinition Height="42"/>
<!-- LINE/ITEM -->
<RowDefinition Height="2*"/>
<!-- MEASURE (Expanded proportionally) -->
<RowDefinition Height="1.8*"/>
<!-- JUDGMENT -->
<RowDefinition Height="60"/>
<!-- STATUS -->
<RowDefinition Height="1.2*"/>
<!-- ERROR -->
</Grid.RowDefinitions>
<!-- 0. Title -->
<Border Grid.Row="0" Background="#34495E" BorderBrush="#212F3D" BorderThickness="1.5">
<TextBlock Text="LEFT LEAK TESTER" Foreground="White" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20"/>
</Border>
<!-- 1. 시작 시간 -->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="시작 시간" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding LeftStartTime}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 2. ID / LOW ID -->
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="ID / LOW ID" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding LeftIdCombined}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 3. DATE / SERIAL -->
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="DATE" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding LeftDate}" Style="{StaticResource ValueLabel}"/>
</Border>
<Border Grid.Column="2" Style="{StaticResource HeaderBorder}">
<TextBlock Text="SERIAL" Style="{StaticResource HeaderLabel}" TextAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="3" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding LeftSerialNo}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 4. MC/LINE / ITEM -->
<Grid Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="MC/LINE" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding LeftMcLine}" Style="{StaticResource ValueLabel}"/>
</Border>
<Border Grid.Column="2" Style="{StaticResource HeaderBorder}">
<TextBlock Text="ITEM" Style="{StaticResource HeaderLabel}" TextAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="3" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding LeftItem}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 5. 측정값 & SPEC -->
<Grid Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="210"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#ECF0F1">
<TextBlock Text="측정값" FontWeight="Bold" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}" Background="#FBFCFC">
<Grid>
<TextBlock Text="{Binding LeftValue}" FontSize="84" FontWeight="Bold" Foreground="#2980B9" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,65,0"/>
<TextBlock Text="sccm" FontSize="22" Foreground="#7F8C8D" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,15,35"/>
</Grid>
</Border>
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="65"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- SPEC Labels -->
<Border Grid.Column="0" Grid.RowSpan="2" Style="{StaticResource HeaderBorder}" Background="#ECF0F1">
<TextBlock Text="SPEC" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<!-- UL -->
<Border Grid.Column="1" Grid.Row="0" Style="{StaticResource CellBorder}">
<DockPanel LastChildFill="True">
<Border Width="40" Background="#F4F6F7" BorderBrush="#BDC3C7" BorderThickness="0,0,1,0">
<TextBlock Text="UL" FontWeight="Bold" VerticalAlignment="Center" TextAlignment="Center" FontSize="15"/>
</Border>
<TextBlock Text="{Binding SpecUL}" FontSize="26" FontWeight="Bold" TextAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0" Foreground="#2C3E50"/>
</DockPanel>
</Border>
<!-- LL -->
<Border Grid.Column="1" Grid.Row="1" Style="{StaticResource CellBorder}">
<DockPanel LastChildFill="True">
<Border Width="40" Background="#F4F6F7" BorderBrush="#BDC3C7" BorderThickness="0,0,1,0">
<TextBlock Text="LL" FontWeight="Bold" VerticalAlignment="Center" TextAlignment="Center" FontSize="15"/>
</Border>
<TextBlock Text="{Binding SpecLL}" FontSize="26" FontWeight="Bold" TextAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0" Foreground="#2C3E50"/>
</DockPanel>
</Border>
</Grid>
</Grid>
<!-- 6. 판정 영역 -->
<Grid Grid.Row="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#ECF0F1">
<TextBlock Text="판정" FontWeight="Bold" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1">
<Border.Style>
<Style TargetType="Border" BasedOn="{StaticResource CellBorder}">
<Style.Triggers>
<DataTrigger Binding="{Binding LeftJudgment}" Value="OK">
<Setter Property="Background" Value="#D4EFDF"/>
</DataTrigger>
<DataTrigger Binding="{Binding LeftJudgment}" Value="NG">
<Setter Property="Background" Value="#FADBD8"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<TextBlock Text="{Binding LeftJudgment}" FontSize="96" FontWeight="ExtraBold" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding LeftJudgment}" Value="OK">
<Setter Property="Foreground" Value="#27AE60"/>
</DataTrigger>
<DataTrigger Binding="{Binding LeftJudgment}" Value="NG">
<Setter Property="Foreground" Value="#C0392B"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Border>
</Grid>
<!-- 7. 진행 메시지 -->
<Grid Grid.Row="7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#EBF5FB">
<TextBlock Text="진행 메시지" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding LeftStatus}" FontWeight="Bold" Foreground="#2E86C1" FontSize="22" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</Grid>
<!-- 8. 오류 메시지 -->
<Grid Grid.Row="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#FDF2E9">
<TextBlock Text="오류 메시지" FontWeight="Bold" FontSize="16" Foreground="#BA4A00" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBox Text="{Binding LeftError}" FontWeight="Bold" Foreground="#C0392B" FontSize="18"
IsReadOnly="True" BorderThickness="0" Background="Transparent"
TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Padding="12"/>
</Border>
</Grid>
</Grid>
<!-- RIGHT CHANNEL -->
<Grid Grid.Column="1" Margin="6,0,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<!-- TITLE -->
<RowDefinition Height="42"/>
<!-- START TIME -->
<RowDefinition Height="42"/>
<!-- ID -->
<RowDefinition Height="42"/>
<!-- DATE/SERIAL -->
<RowDefinition Height="42"/>
<!-- LINE/ITEM -->
<RowDefinition Height="2*"/>
<!-- MEASURE -->
<RowDefinition Height="1.8*"/>
<!-- JUDGMENT -->
<RowDefinition Height="60"/>
<!-- STATUS -->
<RowDefinition Height="1.2*"/>
<!-- ERROR -->
</Grid.RowDefinitions>
<Border Grid.Row="0" Background="#34495E" BorderBrush="#212F3D" BorderThickness="1.5">
<TextBlock Text="RIGHT LEAK TESTER" Foreground="White" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20"/>
</Border>
<!-- 1. 시작 시간 -->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="시작 시간" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding RightStartTime}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 2. ID / LOW ID -->
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="ID / LOW ID" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding RightIdCombined}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 3. DATE / SERIAL -->
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="DATE" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding RightDate}" Style="{StaticResource ValueLabel}"/>
</Border>
<Border Grid.Column="2" Style="{StaticResource HeaderBorder}">
<TextBlock Text="SERIAL" Style="{StaticResource HeaderLabel}" TextAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="3" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding RightSerialNo}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 4. MC/LINE / ITEM -->
<Grid Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="0.5*"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="0.5*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}">
<TextBlock Text="MC/LINE" Style="{StaticResource HeaderLabel}"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding RightMcLine}" Style="{StaticResource ValueLabel}"/>
</Border>
<Border Grid.Column="2" Style="{StaticResource HeaderBorder}">
<TextBlock Text="ITEM" Style="{StaticResource HeaderLabel}" TextAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="3" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding RightItem}" Style="{StaticResource ValueLabel}"/>
</Border>
</Grid>
<!-- 5. 측정값 & SPEC -->
<Grid Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="210"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#ECF0F1">
<TextBlock Text="측정값" FontWeight="Bold" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}" Background="#FBFCFC">
<Grid>
<TextBlock Text="{Binding RightValue}" FontSize="84" FontWeight="Bold" Foreground="#2980B9" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,65,0"/>
<TextBlock Text="sccm" FontSize="22" Foreground="#7F8C8D" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,15,35"/>
</Grid>
</Border>
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="65"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- SPEC Labels -->
<Border Grid.Column="0" Grid.RowSpan="2" Style="{StaticResource HeaderBorder}" Background="#ECF0F1">
<TextBlock Text="SPEC" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<!-- UL -->
<Border Grid.Column="1" Grid.Row="0" Style="{StaticResource CellBorder}">
<DockPanel LastChildFill="True">
<Border Width="40" Background="#F4F6F7" BorderBrush="#BDC3C7" BorderThickness="0,0,1,0">
<TextBlock Text="UL" FontWeight="Bold" VerticalAlignment="Center" TextAlignment="Center" FontSize="15"/>
</Border>
<TextBlock Text="{Binding SpecUL}" FontSize="26" FontWeight="Bold" TextAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0" Foreground="#2C3E50"/>
</DockPanel>
</Border>
<!-- LL -->
<Border Grid.Column="1" Grid.Row="1" Style="{StaticResource CellBorder}">
<DockPanel LastChildFill="True">
<Border Width="40" Background="#F4F6F7" BorderBrush="#BDC3C7" BorderThickness="0,0,1,0">
<TextBlock Text="LL" FontWeight="Bold" VerticalAlignment="Center" TextAlignment="Center" FontSize="15"/>
</Border>
<TextBlock Text="{Binding SpecLL}" FontSize="26" FontWeight="Bold" TextAlignment="Right" VerticalAlignment="Center" Margin="0,0,10,0" Foreground="#2C3E50"/>
</DockPanel>
</Border>
</Grid>
</Grid>
<!-- 6. 판정 영역 -->
<Grid Grid.Row="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#ECF0F1">
<TextBlock Text="판정" FontWeight="Bold" FontSize="18" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1">
<Border.Style>
<Style TargetType="Border" BasedOn="{StaticResource CellBorder}">
<Style.Triggers>
<DataTrigger Binding="{Binding RightJudgment}" Value="OK">
<Setter Property="Background" Value="#D4EFDF"/>
</DataTrigger>
<DataTrigger Binding="{Binding RightJudgment}" Value="NG">
<Setter Property="Background" Value="#FADBD8"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<TextBlock Text="{Binding RightJudgment}" FontSize="96" FontWeight="ExtraBold" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding RightJudgment}" Value="OK">
<Setter Property="Foreground" Value="#27AE60"/>
</DataTrigger>
<DataTrigger Binding="{Binding RightJudgment}" Value="NG">
<Setter Property="Foreground" Value="#C0392B"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Border>
</Grid>
<!-- 7. 진행 메시지 -->
<Grid Grid.Row="7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#EBF5FB">
<TextBlock Text="진행 메시지" FontWeight="Bold" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBlock Text="{Binding RightStatus}" FontWeight="Bold" Foreground="#2E86C1" FontSize="22" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</Grid>
<!-- 8. 오류 메시지 -->
<Grid Grid.Row="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Style="{StaticResource HeaderBorder}" Background="#FDF2E9">
<TextBlock Text="오류 메시지" FontWeight="Bold" FontSize="16" Foreground="#BA4A00" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0"/>
</Border>
<Border Grid.Column="1" Style="{StaticResource CellBorder}">
<TextBox Text="{Binding RightError}" FontWeight="Bold" Foreground="#C0392B" FontSize="18"
IsReadOnly="True" BorderThickness="0" Background="Transparent"
TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" Padding="12"/>
</Border>
</Grid>
</Grid>
</Grid>
</UserControl>