Files
HC_APTBS/Views/UserControls/TestDisplayView.xaml
2026-04-11 12:45:18 +02:00

124 lines
6.7 KiB
XML

<UserControl x:Class="HC_APTBS.Views.UserControls.TestDisplayView"
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"
mc:Ignorable="d"
d:DesignHeight="200" d:DesignWidth="800"
Background="#FFEDEDED" Foreground="Black">
<UserControl.Resources>
<!-- Phase row style: highlight active/passed/failed -->
<Style x:Key="PhaseRowStyle" TargetType="Border">
<Setter Property="Padding" Value="6,4"/>
<Setter Property="Margin" Value="2,1"/>
<Setter Property="CornerRadius" Value="2"/>
<Setter Property="Background" Value="Transparent"/>
</Style>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="34"/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<!-- Header: test name + status -->
<Border BorderBrush="Gray" BorderThickness="0,0,0,1">
<Grid Margin="8,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding TestName}"
FontSize="22" FontFamily="Impact" FontStyle="Italic"
VerticalAlignment="Center" Foreground="Black" Padding="5,0"/>
<TextBlock Grid.Column="1"
Text="{Binding StatusText}"
FontSize="13" FontStyle="Italic" FontFamily="Impact"
VerticalAlignment="Bottom" Foreground="Gray" Padding="10,0,0,4"/>
<TextBlock Grid.Column="2"
VerticalAlignment="Center" Foreground="DimGray" FontSize="12" Margin="0,0,8,0">
<Run Text="~"/>
<Run Text="{Binding RemainingSeconds, Mode=OneWay}"/>
<Run Text="s"/>
</TextBlock>
</Grid>
</Border>
<!-- Phase list (horizontal scroll) -->
<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled"
MinHeight="120">
<ItemsControl ItemsSource="{Binding Phases}" Margin="4,4,4,0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<!-- One card per phase -->
<Border Width="90" Margin="2,0" BorderThickness="1" CornerRadius="2"
SnapsToDevicePixels="True">
<Border.Style>
<Style TargetType="Border">
<Setter Property="Background" Value="#F0F0F0"/>
<Setter Property="BorderBrush" Value="#CCCCCC"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsActive}" Value="True">
<Setter Property="Background" Value="#FFE082"/>
<Setter Property="BorderBrush" Value="#F9A825"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsPassed}" Value="True">
<Setter Property="Background" Value="#C8E6C9"/>
<Setter Property="BorderBrush" Value="#388E3C"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsFailed}" Value="True">
<Setter Property="Background" Value="#FFCDD2"/>
<Setter Property="BorderBrush" Value="#C62828"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsEnabled}" Value="False">
<Setter Property="Background" Value="#E0E0E0"/>
<Setter Property="BorderBrush" Value="#BDBDBD"/>
<Setter Property="Opacity" Value="0.5"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<StackPanel Margin="6,4">
<TextBlock Text="{Binding Name}"
FontSize="11" FontWeight="SemiBold"
TextWrapping="Wrap" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding ResultText}"
FontSize="13" FontWeight="Bold"
HorizontalAlignment="Center" Margin="0,2,0,0">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="DimGray"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsPassed}" Value="True">
<Setter Property="Foreground" Value="#2E7D32"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsFailed}" Value="True">
<Setter Property="Foreground" Value="#B71C1C"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</StackPanel>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</Grid>
</UserControl>