pro3_control_panel_v2/Views/MainWindow.xaml
2025-12-23 14:12:21 +08:00

138 lines
5.1 KiB
XML

<Window x:Class="AmebaPro3_ControlPanel.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"
mc:Ignorable="d"
Title="AmebaPro3 Control Panel"
Height="850"
Width="1400"
WindowStartupLocation="CenterScreen"
ClipToBounds="False">
<Grid x:Name="MainRootGrid" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Top bar -->
<Border x:Name="TopBarBorder" Grid.Row="0"
Background="{StaticResource SurfaceAltBrush}"
BorderBrush="{StaticResource SubtleBorderBrush}"
BorderThickness="0,0,0,1"
Padding="20,12,20,12"
ClipToBounds="False">
<Grid x:Name="TopBarGrid" ClipToBounds="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel x:Name="TopBarStackPanel" Orientation="Vertical"
VerticalAlignment="Center"
Margin="0,0,0,0"
ClipToBounds="False">
<TextBlock Text="AmebaPro3 Control Panel"
FontSize="20"
FontWeight="Bold"/>
<TextBlock Text="Powered by yiekheng, v2.0.0"
Style="{StaticResource CaptionTextStyle}"/>
</StackPanel>
<ListBox x:Name="TopNavListBox" Grid.Column="1"
VerticalAlignment="Center"
Margin="24,0,0,0"
ItemsSource="{Binding Pages}"
SelectedItem="{Binding CurrentPage}"
Style="{StaticResource TopNavListBoxStyle}"
ItemContainerStyle="{StaticResource TopNavListBoxItemStyle}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}"
Padding="18,8"
FontWeight="SemiBold"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Border>
<!-- Page content -->
<Border Grid.Row="1"
Margin="20,16"
Padding="0"
Background="Transparent">
<ContentControl x:Name="MainContentHost"
Content="{Binding CurrentPage}"/>
</Border>
<!-- Status bar -->
<Border Grid.Row="2"
Background="{StaticResource SurfaceAltBrush}"
BorderBrush="{StaticResource SubtleBorderBrush}"
BorderThickness="1,1,1,0"
Padding="20,8">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Text="{Binding SelectedDevice}"
FontWeight="SemiBold"/>
<TextBlock Text=" • "
Margin="6,0"
Foreground="{StaticResource TextBrushMuted}"/>
<TextBlock Text="{Binding ConnectionStatus}"
Foreground="{StaticResource TextBrushSecondary}"/>
</StackPanel>
<StackPanel Grid.Column="1"
Orientation="Horizontal"
VerticalAlignment="Center"
Margin="16,0">
<TextBlock Text="Last RX:"
Style="{StaticResource CaptionTextStyle}"/>
<TextBlock Text="{Binding LastRxTime}"
Margin="6,0,0,0"/>
</StackPanel>
<StackPanel Grid.Column="2"
Orientation="Horizontal"
VerticalAlignment="Center"
Margin="16,0">
<TextBlock Text="RX:"
Style="{StaticResource CaptionTextStyle}"/>
<TextBlock Text="{Binding RxBytes}"
Margin="6,0,0,0"/>
<TextBlock Text="bytes"
Margin="4,0,0,0"
Style="{StaticResource CaptionTextStyle}"/>
</StackPanel>
<StackPanel Grid.Column="3"
Orientation="Horizontal"
VerticalAlignment="Center"
Margin="16,0">
<TextBlock Text="TX:"
Style="{StaticResource CaptionTextStyle}"/>
<TextBlock Text="{Binding TxBytes}"
Margin="6,0,0,0"/>
<TextBlock Text="bytes"
Margin="4,0,0,0"
Style="{StaticResource CaptionTextStyle}"/>
</StackPanel>
</Grid>
</Border>
</Grid>
</Window>