Merge pull request #167 from wxl0430/master

feat: #125 添加了德州东站主要看板
This commit is contained in:
denglihong2007
2025-06-06 00:06:43 +08:00
committed by GitHub
6 changed files with 236 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View File

@@ -111,6 +111,7 @@
<Resource Include="Assets\ChengduMetro\PlatformScreen.png" />
<Resource Include="Assets\DaqingDong\ConcourseBridgeScreen.png" />
<Resource Include="Assets\DaqingDong\PlatformScreen.png" />
<Resource Include="Assets\DeZhouDong\PrimaryScreen.png" />
<Resource Include="Assets\FuzhouNan\TicketCheckScreen.png" />
<Resource Include="Assets\Fuzhou\TicketCheckScreen.png" />
<Resource Include="Assets\GuangdongIntercity\SecondaryScreen.png" />

View File

@@ -378,5 +378,15 @@
"Platform",
"Location"
]
},
{
"UniqueId": "DezhouDong.PrimaryScreen",
"Title": "德州东站主要看板",
"Region": "德州",
"Author": "wxl0430",
"Type": "车站大屏",
"Parameters": [
"Station"
]
}
]

View File

@@ -0,0 +1,15 @@
using CRSim.Core.Models;
using CRSim.Core.Services;
namespace CRSim.ScreenSimulator.ViewModels.DezhouDong
{
public class PrimaryScreenViewModel : ScreenViewModel
{
public PrimaryScreenViewModel(ITimeService timeService, ISettingsService settingsService)
: base(timeService, settingsService)
{
ItemsPerPage = 10;
PageCount = 1;
StationType = StationType.Departure;
}
}
}

View File

@@ -0,0 +1,196 @@
<views:BaseScreenView x:Class="CRSim.ScreenSimulator.Views.DezhouDong.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.DezhouDong"
mc:Ignorable="d"
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="DateTimeToStringDateConverter" Format="yyyy年MM月dd日 dddd HH:mm:ss" />
<converters:TrainStateConverter x:Key="TrainStateConverter" WaitingText="正在候车"/>
<converters:TrainStateColorConverter x:Key="TrainStateColorConverter" WaitingColor="#b4d0fd"/>
<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="#b4d0fd"/>
<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="1">
<Setter Property="Background" Value="#6879a4"/>
<Setter Property="Foreground" Value="#b4d0fd"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=AlternationIndex}" Value="0">
<Setter Property="Background" Value="#33333b"/>
<Setter Property="Foreground" Value="#b4d0fd"/>
</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="#6176a5"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="#cecffb"/>
</Setter.Value>
</Setter>
</Style>
</views:BaseScreenView.Resources>
<StackPanel Orientation="Vertical">
<views:BaseDataGrid ItemsSource="{Binding ScreenA}" FontFamily="DengXian"
RowHeight="28" RowStyle="{StaticResource CommonRowStyle}" FontWeight="SemiBold" AlternationCount="2">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding TrainNumber}" MinWidth="70">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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="90">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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 DepartureTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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 TicketChecks, Converter={StaticResource ListToStringConverter}}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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 Platform}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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 Landmark,Converter={StaticResource LandmarkToStringConverter}}" MinWidth="45">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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 Length,Converter={StaticResource NumberToStringConverter}}" MinWidth="55">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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 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 ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<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>
<Border Background="#3f3c43" Height="30">
<TextBlock Text="{Binding CurrentTime,Converter={StaticResource DateTimeToStringDateConverter}}"
Foreground="#b0aab5" FontWeight="Bold" FontSize="16" VerticalAlignment="Center" TextAlignment="Center"/>
</Border>
</StackPanel>
</views:BaseScreenView>

View File

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