SSPC-Tester/SSPCTester.UI/Views/ProtectView.xaml

122 lines
7.6 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<UserControl x:Class="SSPCTester.UI.Views.ProtectView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:SSPCTester.UI.ViewModels"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=vm:ProtectViewModel}">
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="3*" MinHeight="240" />
<RowDefinition Height="2*" MinHeight="200" />
</Grid.RowDefinitions>
<TextBlock Text="保护功能(覆盖指标 11/14/15/17/19/21/22/23" FontSize="{StaticResource FsH1}" FontWeight="Bold" Margin="0,0,0,8" />
<Border Grid.Row="1" Padding="12,8" Background="{StaticResource WarningSoftBrush}" CornerRadius="{StaticResource RadiusMd}" Margin="0,0,0,12">
<TextBlock Text="此模块当前仅验证框架,暂不执行实际故障触发测试。" Foreground="{StaticResource WarningBrush}" FontWeight="SemiBold" />
</Border>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="320" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Style="{StaticResource Card}" Margin="0,0,12,0">
<StackPanel>
<TextBlock Style="{StaticResource CardTitle}" Text="保护项目" />
<CheckBox Margin="0,4" Content="跳闸" IsChecked="{Binding EnableTrip}" />
<CheckBox Margin="0,4" Content="短路" IsChecked="{Binding EnableShort}" />
<CheckBox Margin="0,4" Content="过温" IsChecked="{Binding EnableOverTemp}" />
<CheckBox Margin="0,4" Content="过压" IsChecked="{Binding EnableOverVolt}" />
<CheckBox Margin="0,4" Content="欠压" IsChecked="{Binding EnableUnderVolt}" />
<CheckBox Margin="0,4" Content="限流" IsChecked="{Binding EnableLimit}" />
<TextBlock Style="{StaticResource CardTitle}" Text="触发阈值" Margin="0,16,0,12" />
<Grid>
<Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="6" />
<RowDefinition Height="Auto" />
<RowDefinition Height="6" />
<RowDefinition Height="Auto" />
<RowDefinition Height="6" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="过压 (V)" /><TextBox Grid.Column="1" Text="{Binding OverVoltThreshold}" FontFamily="{StaticResource FontMono}" />
<TextBlock Grid.Row="2" Text="欠压 (V)" /><TextBox Grid.Row="2" Grid.Column="1" Text="{Binding UnderVoltThreshold}" FontFamily="{StaticResource FontMono}" />
<TextBlock Grid.Row="4" Text="过流 (A)" /><TextBox Grid.Row="4" Grid.Column="1" Text="{Binding OverCurrentThreshold}" FontFamily="{StaticResource FontMono}" />
<TextBlock Grid.Row="6" Text="过温 (℃)" /><TextBox Grid.Row="6" Grid.Column="1" Text="{Binding OverTempThreshold}" FontFamily="{StaticResource FontMono}" />
</Grid>
<Button Style="{StaticResource PrimaryButton}" Content="生成演示结果" Margin="0,16,0,0" Command="{Binding RunDemoCommand}" />
</StackPanel>
</Border>
<Border Style="{StaticResource Card}" Grid.Column="1">
<DockPanel>
<TextBlock DockPanel.Dock="Top" Style="{StaticResource CardTitle}" Text="故障关断曲线(占位)" />
<Border Background="{StaticResource WaveBgBrush}" BorderBrush="{StaticResource BorderSubtleBrush}" BorderThickness="1" CornerRadius="{StaticResource RadiusMd}">
<TextBlock Text="—— 框架占位 ——" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{StaticResource TextMutedBrush}" />
</Border>
</DockPanel>
</Border>
</Grid>
<Grid Grid.Row="3" Margin="0,12,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="576" />
</Grid.ColumnDefinitions>
<Border Style="{StaticResource Card}" Margin="0,0,12,0">
<DockPanel>
<TextBlock DockPanel.Dock="Top" Style="{StaticResource CardTitle}" Text="结果" />
<DataGrid ItemsSource="{Binding Rows}">
<DataGrid.Columns>
<DataGridTextColumn Header="保护类型" Binding="{Binding ProtectType}" Width="*" />
<DataGridTextColumn Header="触发条件" Binding="{Binding Trigger}" Width="2*" />
<DataGridTextColumn Header="关断时间(ms)" Width="*">
<DataGridTextColumn.Binding><Binding Path="TripTimeMs" Converter="{StaticResource NumberOrDash}" ConverterParameter="F2" /></DataGridTextColumn.Binding>
<DataGridTextColumn.ElementStyle><Style TargetType="TextBlock" BasedOn="{StaticResource MonoText}" /></DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn Header="结果" Width="100">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border Style="{StaticResource StatusBadge}" Background="{Binding Status, Converter={StaticResource StatusToSoftBrush}}">
<TextBlock Text="{Binding Status, Converter={StaticResource StatusToText}}" Foreground="{Binding Status, Converter={StaticResource StatusToBrush}}" FontSize="{StaticResource FsSmall}" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</DockPanel>
</Border>
<Border Grid.Column="1" Style="{StaticResource Card}" Padding="14">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Style="{StaticResource CardTitle}" Text="测试说明" />
<TextBox Grid.Row="1"
Text="{Binding Project.TestFunction.Protect, UpdateSourceTrigger=PropertyChanged}"
AcceptsReturn="True"
TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto"
Height="Auto"
MinHeight="130"
Padding="8"
VerticalContentAlignment="Top" />
</Grid>
</Border>
</Grid>
</Grid>
</UserControl>