Merge pull request #200 from wxl0430/master

feat: #183 #188 添加了海拉尔站主要看板和牙克石站站台看板
This commit is contained in:
denglihong2007
2025-06-28 18:30:02 +08:00
committed by GitHub
11 changed files with 483 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -134,6 +134,7 @@
<Resource Include="Assets\Fuzhou\TicketCheckScreen.png" />
<Resource Include="Assets\GuangdongIntercity\SecondaryScreen.png" />
<Resource Include="Assets\Guangyuan\PrimaryScreen.png" />
<Resource Include="Assets\Hailaer\PrimaryScreen.png" />
<Resource Include="Assets\Hanzhong\Image.png" />
<Resource Include="Assets\Hanzhong\PlatformScreen.png" />
<Resource Include="Assets\Harbin\PrimaryScreen.png" />
@@ -152,6 +153,7 @@
<Resource Include="Assets\XuzhouMetro\Metro.png" />
<Resource Include="Assets\XuzhouMetro\PlatformScreen.png" />
<Resource Include="Assets\XuzhouMetro\XuzhouMetro-Icon.png" />
<Resource Include="Assets\Yakeshi\PlatformScreen.png" />
<Resource Include="Assets\Zibo\ConcourseBridgeScreen.png" />
<Resource Include="Assets\Zibo\PlatformScreen.png" />
<Resource Include="Assets\Zibo\PrimaryScreen.png" />

View File

@@ -24,6 +24,8 @@ namespace CRSim.ScreenSimulator.Converters
if (values[0] is int Length && values[1] is int Location)
{
if(DisplayMode == "least" && values[2] is string Direction){
string AddString = "";
if(values.Length >= 5 && values[4] is string TMP) AddString = TMP;
if(Direction == "left")
{
string Arrow = DisplayArrow == "True"? "←" : "";
@@ -31,7 +33,7 @@ namespace CRSim.ScreenSimulator.Converters
if(IsClosedInterval == "closed"){
if(Location < Length)
{
return $"{Arrow}1{HyphenText}{Location-1}";
return $"{Arrow}{AddString}1{HyphenText}{Location-1}";
}
else if(Length == 1)
{
@@ -39,21 +41,21 @@ namespace CRSim.ScreenSimulator.Converters
}
else
{
return $"{Arrow}1{HyphenText}{Length-1}";
return $"{Arrow}{AddString}1{HyphenText}{Length-1}";
}
}
}
if(Location <= Length)
{
return $"{Arrow}1{HyphenText}{Location}";
return $"{Arrow}{AddString}1{HyphenText}{Location}";
}
else if(Length == 1)
{
return $"{Arrow}1";
return $"{Arrow}{AddString}1";
}
else
{
return $"{Arrow}1{HyphenText}{Length}";
return $"{Arrow}{AddString}1{HyphenText}{Length}";
}
}
if(Direction == "right")
@@ -64,10 +66,10 @@ namespace CRSim.ScreenSimulator.Converters
}
else if(Location+1 == Length)
{
return $"{Length}{Arrow}";
return $"{Length}{AddString}{Arrow}";
}
else{
return $"{Location+1}{HyphenText}{Length}{Arrow}";
return $"{Location+1}{HyphenText}{Length}{AddString}{Arrow}";
}
}
return string.Empty;

View File

@@ -432,5 +432,28 @@
"Station",
"TicketCheck"
]
},
{
"UniqueId": "Yakeshi.PlatformScreen",
"Title": "牙克石站站台看板",
"Region": "牙克石",
"Author": "wxl0430",
"Type": "站台屏",
"Parameters": [
"Station",
"Platform",
"Location"
]
},
{
"UniqueId": "Hailaer.PrimaryScreen",
"Title": "海拉尔站主要看板",
"Region": "海拉尔",
"Author": "wxl0430",
"Type": "车站大屏",
"Parameters": [
"Station",
"Text"
]
}
]

View File

@@ -0,0 +1,16 @@
using CRSim.Core.Models;
using CRSim.Core.Services;
namespace CRSim.ScreenSimulator.ViewModels.Hailaer
{
public class PrimaryScreenViewModel : ScreenViewModel
{
public PrimaryScreenViewModel(ITimeService timeService, ISettingsService settingsService)
: base(timeService, settingsService)
{
ItemsPerPage = 6;
ScreenCount = 2;
Text = $" 开车前{settingsService.GetSettings().StopCheckInAdvanceDuration.TotalMinutes}分钟停止检票";;
StationType = StationType.Departure;
}
}
}

View File

@@ -0,0 +1,13 @@
using CRSim.Core.Services;
namespace CRSim.ScreenSimulator.ViewModels.Yakeshi
{
public class PlatformScreenViewModel : ScreenViewModel
{
public PlatformScreenViewModel(ITimeService timeService, ISettingsService settingsService)
: base(timeService, settingsService)
{
Text = $"上下车不要拥挤,小心列车与站台之间的缝隙,看管好老人和同行的儿童";
ItemsPerPage = 1;
}
}
}

View File

@@ -0,0 +1,300 @@
<views:BaseScreenView x:Class="CRSim.ScreenSimulator.Views.Hailaer.PrimaryScreenView"
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.Hailaer"
mc:Ignorable="d" Background="#434446"
xmlns:views="clr-namespace:CRSim.ScreenSimulator.Views"
xmlns:converters="clr-namespace:CRSim.ScreenSimulator.Converters"
xmlns:converters1="clr-namespace:CRSim.Shared.Converters;assembly=CRSim.Shared">
<views:BaseScreenView.Resources>
<converters1:ListToStringConverter x:Key="ListToStringConverter" Separator="" />
<converters1:EmptyToVisibilityConverter x:Key="EmptyToVisibilityConverter" />
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="HH:mm" />
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringTimeConverter" Format="yyyy/M/d HH:mm:ss" />
<converters:TrainStateConverter x:Key="TrainStateConverter" WaitingText="正在候车"/>
<converters:TrainStateColorConverter x:Key="TrainStateColorConverter" WaitingColor="#f9fdd8"/>
<converters:LandmarkToStringConverter x:Key="LandmarkToStringConverter"/>
<converters:NumberToStringConverter x:Key="NumberToStringConverter"/>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Padding" Value="0"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="Height" Value="30"/>
</Style>
<Style x:Key="CommonTextBlockStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#f9fdd8"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="TextAlignment" Value="Center"/>
</Style>
<Style x:Key="CommonRowStyle" TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=AlternationIndex}" Value="0">
<Setter Property="Background" Value="#434446"/>
<Setter Property="Foreground" Value="#f9fdd8"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="CommonHeaderStyle" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="#434446"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="#f2203a"/>
</Setter.Value>
</Setter>
<Setter Property="FontSize" Value="17"/>
</Style>
</views:BaseScreenView.Resources>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<views:BaseDataGrid ItemsSource="{Binding ScreenA}" FontFamily="DengXian"
RowHeight="28" RowStyle="{StaticResource CommonRowStyle}" FontWeight="SemiBold" AlternationCount="1">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding TrainNumber}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="车次" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Origin}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="始发站" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Terminal}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="终到站" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding ArrivalTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="到点" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}">
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding DepartureTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="开点" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}">
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding WaitingArea}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="候车室" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn MinWidth="60">
<DataGridTextColumn.Binding>
<MultiBinding Mode="OneWay" Converter="{StaticResource TrainStateConverter}">
<Binding Path="ArrivalTime" />
<Binding Path="DepartureTime" />
<Binding Path="State" />
</MultiBinding>
</DataGridTextColumn.Binding>
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="状态" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}">
<Setter Property="Foreground">
<Setter.Value>
<MultiBinding Converter="{StaticResource TrainStateColorConverter}">
<Binding Path="ArrivalTime" />
<Binding Path="DepartureTime" />
<Binding Path="State" />
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</views:BaseDataGrid>
<views:BaseDataGrid ItemsSource="{Binding ScreenB}" FontFamily="DengXian"
RowHeight="28" RowStyle="{StaticResource CommonRowStyle}" FontWeight="SemiBold" AlternationCount="1" Margin="10,0,0,0">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding TrainNumber}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="车次" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Origin}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="始发站" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Terminal}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="终到站" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding ArrivalTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="到点" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}">
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding DepartureTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="开点" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}">
<Setter Property="Visibility" Value="{Binding TrainNumber,Converter={StaticResource EmptyToVisibilityConverter}}"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding WaitingArea}" MinWidth="50">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="候车室" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}"/>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn MinWidth="60">
<DataGridTextColumn.Binding>
<MultiBinding Mode="OneWay" Converter="{StaticResource TrainStateConverter}">
<Binding Path="ArrivalTime" />
<Binding Path="DepartureTime" />
<Binding Path="State" />
</MultiBinding>
</DataGridTextColumn.Binding>
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}, Path=ActualWidth}">
<TextBlock Text="状态" Style="{StaticResource CommonHeaderStyle}" Padding="0,6,0,0" Height="30"/>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonTextBlockStyle}">
<Setter Property="Foreground">
<Setter.Value>
<MultiBinding Converter="{StaticResource TrainStateColorConverter}">
<Binding Path="ArrivalTime" />
<Binding Path="DepartureTime" />
<Binding Path="State" />
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
</DataGrid.Columns>
</views:BaseDataGrid>
</StackPanel>
<Grid Background="#434446" HorizontalAlignment="Stretch" Height="25">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Text}" Foreground="#f2203a" Margin="30,2" FontFamily="微软雅黑" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Grid.Column="2" Text="{Binding CurrentTime,Converter={StaticResource DateTimeToStringTimeConverter}}" Foreground="#f2203a" Margin="30,2" FontFamily="微软雅黑" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</StackPanel>
</views:BaseScreenView>

View File

@@ -0,0 +1,14 @@
using CRSim.ScreenSimulator.ViewModels.Hailaer;
namespace CRSim.ScreenSimulator.Views.Hailaer
{
public partial class PrimaryScreenView : BaseScreenView
{
public PrimaryScreenViewModel ViewModel { get; }
public PrimaryScreenView(PrimaryScreenViewModel viewModel)
{
InitializeComponent();
ViewModel = viewModel;
DataContext = viewModel;
}
}
}

View File

@@ -0,0 +1,90 @@
<views:BaseScreenView x:Class="CRSim.ScreenSimulator.Views.Yakeshi.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.Yakeshi"
mc:Ignorable="d"
xmlns:converters="clr-namespace:CRSim.ScreenSimulator.Converters"
xmlns:converters1="clr-namespace:CRSim.Shared.Converters;assembly=CRSim.Shared"
FontFamily="黑体" FontSize="28" FontWeight="Bold" Background="#000000"
xmlns:views="clr-namespace:CRSim.ScreenSimulator.Views">
<Window.Resources>
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="HH:mm" />
<converters:LocationToStringConverter x:Key="LocationToStringConverter" DisplayMode="least" HyphenText="-" />
<converters1:EmptyToVisibilityConverter x:Key="EmptyToVisibilityConverter" />
</Window.Resources>
<StackPanel Orientation="Horizontal">
<Grid Background="#000000" MinWidth="600">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Margin="0,3,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{Binding ScreenA[0].TrainNumber}" Foreground="#d23139" Margin="15,0,0,0" FontSize="26"/>
<TextBlock Grid.Column="2" Text="{Binding ScreenA[0].Origin}" Foreground="#d23139" FontSize="26" Margin="30,0,0,0"/>
<TextBlock Grid.Column="3" Text="—" Foreground="#d23139" FontSize="26"/>
<TextBlock Grid.Column="4" Text="{Binding ScreenA[0].Terminal}" Foreground="#d23139" FontSize="26"/>
</Grid>
<Grid Grid.Row="1" Margin="0,3,0,3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="{Binding ScreenA[0].DepartureTime,Converter={StaticResource DateTimeToStringConverter}}" Foreground="#d23139" FontSize="26"/>
<TextBlock Grid.Column="2" Text="开" Foreground="#d23139" FontSize="26"/>
<TextBlock Grid.Column="3" Text="{Binding ThisPlatform}" Foreground="#d23139" FontSize="26" Margin="30,0,0,0"/>
<TextBlock Grid.Column="4" Text="站台" Foreground="#d23139" FontSize="26" Margin="0,0,5,0"/>
</Grid>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" TextAlignment="Center" Foreground="#d23139" FontSize="26">
<TextBlock.Text>
<MultiBinding Mode="OneWay" Converter="{StaticResource LocationToStringConverter}">
<Binding Path="ScreenA[0].Length" />
<Binding Path="Location" />
<Binding Source="left" />
<Binding Source="closed" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock Grid.Column="2" TextAlignment="Center" Foreground="#d23139" FontSize="26" Text="车"/>
<TextBlock Grid.Column="4" TextAlignment="Center" Foreground="#d23139" FontSize="26">
<TextBlock.Text>
<MultiBinding Mode="OneWay" Converter="{StaticResource LocationToStringConverter}">
<Binding Path="ScreenA[0].Length" />
<Binding Path="Location" />
<Binding Source="right" />
<Binding Source="noclosed" />
<Binding Source="车" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</Grid>
<pp:RunningText Grid.Row="3" Speed="20" Foreground="#d23139" Text="{Binding Text}" FontSize="26" FontWeight="Normal"/>
</Grid>
</StackPanel>
</views:BaseScreenView>

View File

@@ -0,0 +1,16 @@
using CRSim.ScreenSimulator.ViewModels.Yakeshi;
namespace CRSim.ScreenSimulator.Views.Yakeshi
{
public partial class PlatformScreenView : BaseScreenView
{
public PlatformScreenViewModel ViewModel { get; }
public PlatformScreenView(PlatformScreenViewModel viewModel)
{
InitializeComponent();
ViewModel = viewModel;
DataContext = viewModel;
}
}
}