feat: 添加大庆东站站台屏和北京站到达屏

This commit is contained in:
wxl0430
2025-04-19 18:18:15 +08:00
committed by GitHub
parent 60b6408451
commit af750e930a
12 changed files with 510 additions and 3 deletions

View File

@@ -0,0 +1,144 @@
<Window x:Class="CRSim.ScreenSimulator.Views.Beijing.ArrivalScreenView"
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.ScreenSimulator.Views.Beijing"
mc:Ignorable="d"
xmlns:converters="clr-namespace:CRSim.ScreenSimulator.Converters"
xmlns:converters1="clr-namespace:CRSim.Shared.Converters;assembly=CRSim.Shared"
FontFamily="等线" FontSize="25" FontWeight="Bold"
Title="引导屏" SizeToContent="WidthAndHeight"
WindowStyle="None" AllowsTransparency="True" Background="#253f71"
KeyDown="Window_KeyDown"
ResizeMode="NoResize" MouseDown="Window_MouseDown">
<Window.Resources>
<Style TargetType="DataGridColumnHeader">
<!-- 去除列头的间距 -->
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="BorderBrush" Value="#253f71"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<converters:TrainStateColorConverter x:Key="TrainStateColorConverter"/>
<converters:LandmarkToStringConverter x:Key="LandmarkToStringConverter"/>
<converters1:EmptyToVisibilityConverter x:Key="EmptyToVisibilityConverter" />
<converters:LocationToStringConverter x:Key="LocationToStringConverter" DisplayMode="least" />
<converters:TrainStateConverter x:Key="TrainStateConverter" ArrivingText="正点到达" DisplayMode="Arrive" />
<converters:NumberToStringConverter x:Key="NumberToStringConverter"/>
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="HH:mm" />
</Window.Resources>
<StackPanel Orientation="Horizontal">
<Grid Background="#253f71" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="150">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding ThisPlatform}" FontSize="50" TextAlignment="Center" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="10,0,0,25">
<TextBlock.LayoutTransform>
<ScaleTransform ScaleX="1.25" ScaleY="1"/>
</TextBlock.LayoutTransform>
</TextBlock>
<TextBlock Text="站台" FontSize="18" TextAlignment="Left" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="25,50,0,0" />
<TextBlock Text="Platform" FontSize="16" TextAlignment="Left" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="85,50,0,0" />
</Grid>
<StackPanel Orientation="Vertical">
<DataGrid ItemsSource="{Binding Screen}" AutoGenerateColumns="False"
CanUserResizeColumns="False" CanUserSortColumns="False" CanUserAddRows="False"
CanUserResizeRows="False" CanUserReorderColumns="False"
IsReadOnly="True" GridLinesVisibility="None" RowHeight="28" Foreground="White"
HeadersVisibility="Column" IsEnabled="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding TrainNumber}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="车次" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#253f71" Width="110"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Origin}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="始发站" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#253f71" Width="110"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Terminal}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="终到站" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#253f71" Width="110"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding ArrivalTime, Converter={StaticResource DateTimeToStringConverter}}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="到点" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#253f71" Width="100"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Platform}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="站台" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#253f71" Width="80"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn>
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="状态" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#253f71" Width="130"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.Binding>
<MultiBinding Converter="{StaticResource TrainStateConverter}">
<Binding Path="ArrivalTime" />
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="#253f71"/>
</Style>
</DataGrid.RowStyle>
</DataGrid>
</StackPanel>
</StackPanel>
</Window>

View File

@@ -0,0 +1,36 @@
using CRSim.ScreenSimulator.ViewModels.Beijing;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
namespace CRSim.ScreenSimulator.Views.Beijing
{
/// <summary>
/// SecondaryScreen.xaml 的交互逻辑
/// </summary>
public partial class ArrivalScreenView : Window
{
public ArrivalScreenViewModel ViewModel { get; }
public ArrivalScreenView(ArrivalScreenViewModel viewModel)
{
InitializeComponent();
RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);
ViewModel = viewModel;
DataContext = viewModel;
}
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
DragMove();
}
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape)
{
Close();
}
}
}
}

View File

@@ -0,0 +1,187 @@
<Window x:Class="CRSim.ScreenSimulator.Views.Daqingdong.PlatformScreenView"
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:pp="https://www.cnblogs.com/pumbaa"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:CRSim.ScreenSimulator.Views.Daqingdong"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
mc:Ignorable="d"
xmlns:converters="clr-namespace:CRSim.ScreenSimulator.Converters"
xmlns:converters1="clr-namespace:CRSim.Shared.Converters;assembly=CRSim.Shared"
FontFamily="等线" FontSize="25" FontWeight="Bold"
Title="引导屏" SizeToContent="WidthAndHeight"
WindowStyle="None" AllowsTransparency="True" Background="#201921" Foreground="#fdfce5"
KeyDown="Window_KeyDown"
ResizeMode="NoResize" MouseDown="Window_MouseDown">
<Window.Resources>
<Style TargetType="DataGridColumnHeader">
<!-- 去除列头的间距 -->
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="BorderBrush" Value="#201921"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<converters:TrainStateConverter x:Key="TrainStateConverter"/>
<converters:TrainStateColorConverter x:Key="TrainStateColorConverter"/>
<converters:LandmarkToStringConverter x:Key="LandmarkToStringConverter"/>
<converters1:EmptyToVisibilityConverter x:Key="EmptyToVisibilityConverter" />
<converters:LocationToStringConverter x:Key="LocationToStringConverter" DisplayMode="least" />
<converters:NumberToStringConverter x:Key="NumberToStringConverter"/>
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="HH:mm" />
</Window.Resources>
<StackPanel Orientation="Horizontal">
<Grid Background="#2556ff" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="180">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding ThisPlatform}" FontSize="80" TextAlignment="Center" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="-80,0,0,0">
<TextBlock.LayoutTransform>
<ScaleTransform ScaleX="1.25" ScaleY="1"/>
</TextBlock.LayoutTransform>
</TextBlock>
<TextBlock Text="站 台" FontSize="35" TextAlignment="Left" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="75,0,0,22" />
<TextBlock Text="Platfrom" FontSize="23" TextAlignment="Left" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="75,32,0,0" />
</Grid>
<StackPanel Orientation="Vertical">
<DataGrid ItemsSource="{Binding Screen}" AutoGenerateColumns="False"
CanUserResizeColumns="False" CanUserSortColumns="False" CanUserAddRows="False"
CanUserResizeRows="False" CanUserReorderColumns="False" ClipToBounds="False"
IsReadOnly="True" GridLinesVisibility="None" RowHeight="35" Foreground="White"
HeadersVisibility="Column" IsEnabled="False">
<DataGrid.Columns>
<DataGridTextColumn>
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="车厢" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#201921" Foreground="#ff1111" Width="120"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.Binding>
<MultiBinding Converter="{StaticResource LocationToStringConverter}">
<Binding Path="Length" />
<Binding Path="DataContext.Location" RelativeSource="{RelativeSource AncestorType={x:Type DataGrid}}" />
<Binding Source="left" />
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding TrainNumber}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="车次" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#201921" Foreground="#ff1111" Width="120"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Origin}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="始发站" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#201921" Foreground="#ff1111" Width="140"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Terminal}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="终到站" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#201921" Foreground="#ff1111" Width="140"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Platform}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="站台" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#201921" Foreground="#ff1111" Width="80"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding DepartureTime, Converter={StaticResource DateTimeToStringConverter}}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="开点" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#201921" Foreground="#ff1111" Width="120"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn>
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock Text="车厢" Padding="2" HorizontalAlignment="Stretch" TextAlignment="Center" Background="#201921" Foreground="#ff1111" Width="120"/>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
<DataGridTextColumn.Binding>
<MultiBinding Converter="{StaticResource LocationToStringConverter}">
<Binding Path="Length" />
<Binding Path="DataContext.Location" RelativeSource="{RelativeSource AncestorType={x:Type DataGrid}}" />
<Binding Source="right" />
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="#201921"/>
<Setter Property="Foreground" Value="#eedd82"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Foreground" Value="#eedd82"/>
</Style>
</DataGrid.CellStyle>
</DataGrid>
</StackPanel>
<Grid Background="#2556ff" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Width="180">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding ThisPlatform}" FontSize="80" TextAlignment="Center" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="-85,0,0,0">
<TextBlock.LayoutTransform>
<ScaleTransform ScaleX="1.25" ScaleY="1"/>
</TextBlock.LayoutTransform>
</TextBlock>
<TextBlock Text="站 台" FontSize="35" TextAlignment="Left" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="75,0,0,22" />
<TextBlock Text="Platfrom" FontSize="23" TextAlignment="Left" VerticalAlignment="Center" FontFamily="黑体" FontWeight="Black" Foreground="#ffffff" Margin="75,32,0,0" />
</Grid>
</StackPanel>
</Window>

View File

@@ -0,0 +1,36 @@
using CRSim.ScreenSimulator.ViewModels.Daqingdong;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
namespace CRSim.ScreenSimulator.Views.Daqingdong
{
/// <summary>
/// SecondaryScreen.xaml 的交互逻辑
/// </summary>
public partial class PlatformScreenView : Window
{
public PlatformScreenViewModel ViewModel { get; }
public PlatformScreenView(PlatformScreenViewModel viewModel)
{
InitializeComponent();
RenderOptions.SetEdgeMode(this, EdgeMode.Aliased);
ViewModel = viewModel;
DataContext = viewModel;
}
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
DragMove();
}
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape)
{
Close();
}
}
}
}