Files
CRSim/CRSim.ExamplePlugin/Views/ScreenView.xaml
2025-07-12 09:04:53 +08:00

135 lines
7.9 KiB
XML

<Page x:Class="CRSim.ExamplePlugin.Views.ScreenView"
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:local="clr-namespace:CRSim.ExamplePlugin.Views"
mc:Ignorable="d"
xmlns:converters="clr-namespace:CRSim.ScreenSimulator.Converters;assembly=CRSim.ScreenSimulator"
FontFamily="Microsoft YaHei"
xmlns:views="clr-namespace:CRSim.ScreenSimulator.Views;assembly=CRSim.ScreenSimulator">
<Page.Resources>
<Style x:Key="HeaderTextBlockStyle" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="Padding" Value="3"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="Background" Value="Black"/>
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}"/>
</Style>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Foreground" Value="#D75B41"/>
</Style>
<converters:ListToStringConverter x:Key="ListToStringConverter" Separator="" />
<converters:EmptyToVisibilityConverter x:Key="EmptyToVisibilityConverter" />
<converters:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="HH:mm" />
<converters:DateTimeToStringConverter x:Key="DateTimeToStringTimeConverter" Format="HH:mm:ss" />
<converters:DateTimeToStringConverter x:Key="DateTimeToStringDateConverter" Format="yyyy/MM/dd" />
<converters:TrainStateConverter x:Key="TrainStateConverter" WaitingText="正点"/>
</Page.Resources>
<StackPanel Orientation="Horizontal">
<views:BaseDataGrid ItemsSource="{Binding ScreenA}" RowHeight="28" Foreground="#D75B41" FontWeight="Bold">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding TrainNumber}" MinWidth="55">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="车次" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Origin}" MinWidth="100">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="始发站" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Terminal}" MinWidth="100">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="终到站" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding DepartureTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="开点" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding WaitingArea}" MinWidth="80">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="候车区" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding TicketChecks, Converter={StaticResource ListToStringConverter}}" MinWidth="70">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="检票口" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Platform}" MinWidth="70">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="站台" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
<DataGridTextColumn MinWidth="90">
<DataGridTextColumn.Binding>
<MultiBinding Mode="OneWay" Converter="{StaticResource TrainStateConverter}">
<Binding Path="ArrivalTime" />
<Binding Path="DepartureTime" />
<Binding Path="State" />
</MultiBinding>
</DataGridTextColumn.Binding>
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="状态" Style="{StaticResource HeaderTextBlockStyle}"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Foreground" Value="#D75B41"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="Black"/>
</Style>
</DataGrid.RowStyle>
</views:BaseDataGrid>
<Grid Width="350" Background="Black">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="{Binding CurrentTime,Converter={StaticResource DateTimeToStringDateConverter}}"
Foreground="#D75B41" FontSize="44" FontWeight="Bold" TextAlignment="Center"/>
<TextBlock Grid.Row="1" Text="{Binding CurrentTime,Converter={StaticResource DateTimeToStringTimeConverter}}"
Foreground="#D75B41" FontSize="44" FontWeight="Bold" TextAlignment="Center"/>
<TextBlock Grid.Row="3" Text="{Binding Text}" Foreground="#D75B41"
FontWeight="Bold" FontSize="16" TextAlignment="Center" Margin="2"/>
</Grid>
</StackPanel>
</Page>