181 lines
11 KiB
XML
181 lines
11 KiB
XML
<Window x:Class="SSPCTester.UI.Views.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:vm="clr-namespace:SSPCTester.UI.ViewModels"
|
|
xmlns:v="clr-namespace:SSPCTester.UI.Views"
|
|
mc:Ignorable="d"
|
|
Title="固态功率控制器动态参数测试系统"
|
|
WindowState="Maximized"
|
|
WindowStartupLocation="CenterScreen"
|
|
Background="{StaticResource BgAppBrush}"
|
|
d:DataContext="{d:DesignInstance Type=vm:MainViewModel}">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="48" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- ====== 标题栏 ====== -->
|
|
<Border Grid.Row="0" Background="{StaticResource BgTitlebarBrush}"
|
|
BorderBrush="{StaticResource BorderBrush}" BorderThickness="0,0,0,1">
|
|
<Grid Margin="20,0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Grid.Column="0">
|
|
<Viewbox Width="22" Height="22" Margin="0,0,12,0">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Data="{StaticResource LogoGeometry}" Fill="{StaticResource PrimaryBrush}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
<TextBlock Text="固态功率控制器动态参数测试系统"
|
|
FontSize="{StaticResource FsTitle}" FontWeight="Bold" />
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal" Grid.Column="2" VerticalAlignment="Center">
|
|
<Grid>
|
|
<Button x:Name="DeviceStatusButton" Padding="10,4" BorderThickness="0"
|
|
Background="{Binding DevicesConnected, Converter={StaticResource StatusToSoftBrush}, ConverterParameter=Pass}"
|
|
Command="{Binding ToggleDevicePanelCommand}" ToolTip="查看和控制硬件连接">
|
|
<StackPanel Orientation="Horizontal">
|
|
<Ellipse Width="8" Height="8" Margin="0,0,6,0" VerticalAlignment="Center"
|
|
Fill="{Binding DevicesConnected, Converter={StaticResource StatusToBrush}, ConverterParameter=Pass}" />
|
|
<TextBlock Text="{Binding DeviceSummary}" VerticalAlignment="Center" FontSize="{StaticResource FsSmall}" />
|
|
</StackPanel>
|
|
</Button>
|
|
<Popup IsOpen="{Binding DevicePanelOpen}" PlacementTarget="{Binding ElementName=DeviceStatusButton}"
|
|
Placement="Bottom" StaysOpen="False" AllowsTransparency="True">
|
|
<Border Width="330" Margin="0,8,0,0" Padding="16"
|
|
Background="{StaticResource BgSurfaceBrush}" BorderBrush="{StaticResource BorderBrush}"
|
|
BorderThickness="1" CornerRadius="{StaticResource RadiusMd}">
|
|
<StackPanel>
|
|
<TextBlock Text="硬件设备状态" FontWeight="Bold" FontSize="{StaticResource FsH2}" Margin="0,0,0,12" />
|
|
<Grid Margin="0,3">
|
|
<Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="Auto" /></Grid.ColumnDefinitions>
|
|
<TextBlock Text="SSPC Modbus" /><TextBlock Grid.Column="1" Text="{Binding SspcConnectionStatus}" />
|
|
</Grid>
|
|
<Grid Margin="0,3">
|
|
<Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="Auto" /></Grid.ColumnDefinitions>
|
|
<TextBlock Text="电源 UDP5080" /><TextBlock Grid.Column="1" Text="{Binding PowerConnectionStatus}" />
|
|
</Grid>
|
|
<Grid Margin="0,3">
|
|
<Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="Auto" /></Grid.ColumnDefinitions>
|
|
<TextBlock Text="IT8702P 电子负载" /><TextBlock Grid.Column="1" Text="{Binding LoadConnectionStatus}" />
|
|
</Grid>
|
|
<Grid Margin="0,3,0,12">
|
|
<Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="Auto" /></Grid.ColumnDefinitions>
|
|
<TextBlock Text="PCIe8586 高速采集卡" /><TextBlock Grid.Column="1" Text="{Binding DaqConnectionStatus}" />
|
|
</Grid>
|
|
<WrapPanel>
|
|
<Button Content="连接全部" Command="{Binding ConnectAllDevicesCommand}" Margin="0,0,8,8" />
|
|
<Button Content="断开全部" Command="{Binding DisconnectAllDevicesCommand}" Margin="0,0,8,8" />
|
|
<Button Content="刷新状态" Command="{Binding RefreshDevicesCommand}" Margin="0,0,0,8" />
|
|
</WrapPanel>
|
|
<Button Content="打开设备设置" Command="{Binding OpenSettingsFromDevicePanelCommand}"
|
|
HorizontalAlignment="Stretch" />
|
|
</StackPanel>
|
|
</Border>
|
|
</Popup>
|
|
</Grid>
|
|
<Button Margin="12,0,0,0" Width="34" Height="30" Padding="0"
|
|
Command="{Binding OpenSettingsCommand}"
|
|
ToolTip="系统设置" Background="Transparent" BorderBrush="Transparent">
|
|
<Viewbox Width="18" Height="18">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Data="{StaticResource SettingsGeometry}" Fill="{StaticResource TextSecondaryBrush}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- ====== 主体 ====== -->
|
|
<Grid Grid.Row="1">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="232" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- 侧栏 -->
|
|
<Border Background="{StaticResource BgSidebarBrush}" BorderBrush="{StaticResource BorderBrush}" BorderThickness="0,0,1,0">
|
|
<DockPanel>
|
|
<Border DockPanel.Dock="Top" Padding="12,10" BorderBrush="{StaticResource BorderSubtleBrush}" BorderThickness="0,0,0,1">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Text="最近项目" FontWeight="Bold" VerticalAlignment="Center" />
|
|
<Button Grid.Column="1" Width="26" Height="26" Padding="0"
|
|
Command="{Binding NewProjectCommand}"
|
|
ToolTip="新建项目" Background="Transparent" BorderBrush="Transparent">
|
|
<Viewbox Width="16" Height="16">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Data="{StaticResource PlusGeometry}" Fill="{StaticResource PrimaryBrush}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
</Button>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<Button DockPanel.Dock="Bottom" Margin="12,8" Height="30" HorizontalContentAlignment="Left"
|
|
Padding="10,0" Command="{Binding OpenProjectsFolderCommand}">
|
|
<StackPanel Orientation="Horizontal">
|
|
<Viewbox Width="14" Height="14" Margin="0,0,6,0">
|
|
<Canvas Width="24" Height="24">
|
|
<Path Data="{StaticResource FolderGeometry}" Fill="{StaticResource TextSecondaryBrush}" />
|
|
</Canvas>
|
|
</Viewbox>
|
|
<TextBlock Text="打开项目文件夹" />
|
|
</StackPanel>
|
|
</Button>
|
|
|
|
<TreeView x:Name="ProjectTree" ItemsSource="{Binding TreeRoots}"
|
|
MouseDoubleClick="ProjectTree_MouseDoubleClick" Padding="6,6">
|
|
<TreeView.Resources>
|
|
<HierarchicalDataTemplate DataType="{x:Type vm:ProjectNode}" ItemsSource="{Binding Children}">
|
|
<TextBlock Text="{Binding Title}" Padding="0,2" />
|
|
</HierarchicalDataTemplate>
|
|
</TreeView.Resources>
|
|
</TreeView>
|
|
</DockPanel>
|
|
</Border>
|
|
|
|
<!-- 内容区 -->
|
|
<Grid Grid.Column="1">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- 测试进行中状态条 -->
|
|
<Border Grid.Row="0" Padding="16,10"
|
|
Background="{StaticResource TestingBarBrush}"
|
|
BorderBrush="{StaticResource TestingBarBorderBrush}"
|
|
BorderThickness="0,0,0,1"
|
|
Visibility="{Binding CurrentSession, Converter={StaticResource NullToVis}}">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<Ellipse Width="10" Height="10" VerticalAlignment="Center" Fill="{StaticResource WarningBrush}" />
|
|
<TextBlock Grid.Column="1" Margin="10,0,0,0" VerticalAlignment="Center"
|
|
FontWeight="SemiBold" Foreground="{StaticResource TestingBarTextBrush}"
|
|
Text="{Binding TestingMessage}" />
|
|
<Button Grid.Column="2" Style="{StaticResource DangerButton}" Content="中止测试"
|
|
Command="{Binding AbortTestCommand}" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<ContentControl Grid.Row="1" Content="{Binding CurrentView}" Margin="0" />
|
|
</Grid>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|