Files
Ayay/SHH.CameraDashboard/Pages/CameraImageSubscription.xaml
2026-01-01 22:40:32 +08:00

317 lines
14 KiB
XML
Raw Permalink 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="SHH.CameraDashboard.CameraImageSubscription"
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:local="clr-namespace:SHH.CameraDashboard"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="600"
d:DesignWidth="900"
mc:Ignorable="d">
<UserControl.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis" />
<local:SubscriptionTypeConverter x:Key="TypeConverter" />
</UserControl.Resources>
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="20" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel
Grid.Row="0"
Margin="0,0,0,15"
Orientation="Horizontal">
<TextBlock
Margin="0,0,8,0"
VerticalAlignment="Center"
FontSize="18"
Text="📡" />
<TextBlock
VerticalAlignment="Center"
FontSize="18"
FontWeight="SemiBold"
Foreground="{DynamicResource Brush.Text.Primary}"
Text="订阅管理" />
<TextBlock
Margin="5,2,0,0"
VerticalAlignment="Center"
FontSize="14"
Foreground="{DynamicResource Brush.Text.Secondary}"
Text=" (实时分发控制)" />
</StackPanel>
<Border
Grid.Row="1"
Background="{DynamicResource Brush.Bg.Panel}"
BorderBrush="{DynamicResource Brush.Border}"
BorderThickness="1"
CornerRadius="{StaticResource Radius.Normal}">
<DataGrid
BorderThickness="0"
IsReadOnly="True"
ItemsSource="{Binding Subscriptions}"
SelectedItem="{Binding SelectedSubscription}"
SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn
Width="80"
Binding="{Binding AppId}"
Header="App ID">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Foreground" Value="{DynamicResource Brush.Text.Primary}" />
<Setter Property="FontWeight" Value="SemiBold" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn
Width="125"
Binding="{Binding Type, Converter={StaticResource TypeConverter}}"
Header="类型">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Margin" Value="5,0" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn Width="70" Header="目标帧率">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border
Padding="5,1"
HorizontalAlignment="Center"
Background="{DynamicResource Brush.Bg.L3}"
CornerRadius="3"
ToolTip="配置的期望帧率">
<TextBlock
FontSize="11"
Foreground="{DynamicResource Brush.Text.Inverse}"
Text="{Binding DisplayFps, StringFormat={}{0} FPS}" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Width="70" Header="实际帧率">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Border
Padding="5,1"
HorizontalAlignment="Center"
CornerRadius="3">
<TextBlock
FontSize="11"
FontWeight="Bold"
Foreground="{DynamicResource Brush.State.Success}"
Text="{Binding RealFps, StringFormat={}{0:F1} FPS}" />
</Border>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn
Width="2*"
Binding="{Binding Memo}"
Header="备注">
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="TextTrimming" Value="CharacterEllipsis" />
<Setter Property="ToolTip" Value="{Binding Memo}" />
<Setter Property="Foreground" Value="{DynamicResource Brush.Text.Secondary}" />
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTemplateColumn Width="50" Header="操作">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button
Height="30"
Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding AppId}"
Content="注销"
Style="{StaticResource Btn.Ghost.Danger}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Border>
<Border
Grid.Row="3"
Padding="20"
Background="{DynamicResource Brush.Bg.Panel}"
BorderBrush="{DynamicResource Brush.Border}"
BorderThickness="1"
CornerRadius="{StaticResource Radius.Normal}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel
Grid.Row="0"
Grid.ColumnSpan="5"
Margin="0,0,0,15"
Orientation="Horizontal">
<TextBlock
Margin="0,0,5,0"
Foreground="{DynamicResource Brush.Text.Primary}"
Text="" />
<TextBlock
FontSize="14"
FontWeight="Bold"
Foreground="{DynamicResource Brush.Text.Primary}"
Text="新增 / 编辑订阅" />
</StackPanel>
<TextBlock
Grid.Row="1"
Grid.Column="0"
VerticalAlignment="Center"
Foreground="{DynamicResource Brush.Text.Secondary}"
Text="App ID:" />
<TextBox
Grid.Row="1"
Grid.Column="1"
Margin="0,5"
Text="{Binding EditAppId}" />
<TextBlock
Grid.Row="1"
Grid.Column="3"
VerticalAlignment="Center"
Foreground="{DynamicResource Brush.Text.Secondary}"
Text="类型:" />
<ComboBox
Grid.Row="1"
Grid.Column="4"
Height="{StaticResource Height.Input}"
Margin="0,5"
VerticalContentAlignment="Center"
DisplayMemberPath="Value"
ItemsSource="{Binding SubscriptionTypes}"
SelectedValue="{Binding EditType}"
SelectedValuePath="Key" />
<TextBlock
Grid.Row="2"
Grid.Column="0"
VerticalAlignment="Center"
Foreground="{DynamicResource Brush.Text.Secondary}"
Text="目标帧率:" />
<Grid
Grid.Row="2"
Grid.Column="1"
Margin="0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Slider
VerticalAlignment="Center"
IsSnapToTickEnabled="True"
Maximum="25"
Minimum="1"
Value="{Binding EditFps}" />
<TextBlock
Grid.Column="1"
Margin="10,0,0,0"
VerticalAlignment="Center"
FontWeight="Bold"
Foreground="{DynamicResource Brush.Brand}"
Text="{Binding EditFps, StringFormat={}{0} fps}" />
</Grid>
<TextBlock
Grid.Row="2"
Grid.Column="3"
VerticalAlignment="Center"
Foreground="{DynamicResource Brush.Text.Secondary}"
Text="备注:" />
<TextBox
Grid.Row="2"
Grid.Column="4"
Margin="0,5"
Text="{Binding EditMemo}" />
<Grid
Grid.Row="3"
Grid.ColumnSpan="5"
Visibility="{Binding IsNetworkType, Converter={StaticResource BoolToVis}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="80" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock
Grid.Column="0"
VerticalAlignment="Center"
Foreground="{DynamicResource Brush.Text.Secondary}"
Text="目标 IP:" />
<TextBox
Grid.Column="1"
Margin="0,5"
Text="{Binding EditTargetIp}" />
<TextBlock
Grid.Column="3"
VerticalAlignment="Center"
Foreground="{DynamicResource Brush.Text.Secondary}"
Text="目标端口:" />
<TextBox
Grid.Column="4"
Margin="0,5"
Text="{Binding EditTargetPort}" />
</Grid>
<StackPanel
Grid.Row="4"
Grid.ColumnSpan="5"
Margin="0,15,0,0"
HorizontalAlignment="Right"
Orientation="Horizontal">
<Button
Width="100"
Margin="0,0,10,0"
Command="{Binding ClearFormCommand}"
Content="重置表单"
Style="{StaticResource Btn.Ghost}" />
<Button
Width="120"
Command="{Binding SaveCommand}"
Content="提交保存"
Style="{StaticResource PrimaryBtnStyle}" />
</StackPanel>
</Grid>
</Border>
</Grid>
</UserControl>