Merge branch 'master' into dev

This commit is contained in:
denglihong2007
2025-04-05 17:04:05 +08:00
7 changed files with 498 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
using CRSim.Core.Models;
using CRSim.Core.Services;
using CRSim.ScreenSimulator.Models;
using System.Collections.ObjectModel;
using System.Windows;
namespace CRSim.ScreenSimulator.ViewModels.Zibo
{
public class TicketCheckScreenViewModel : ScreenViewModel
{
public ObservableCollection<TrainInfo> LeftScreen { get; private set; } = [];
public ObservableCollection<TrainInfo> RightScreen { get; private set; } = [];
public TicketCheckScreenViewModel(ITimeService timeService, ISettingsService settingsService)
: base(timeService, settingsService)
{
Text = $" 开车前{settingsService.GetSettings().StopCheckInAdvanceDuration.TotalMinutes}分钟停止检票";
StationType = StationType.Departure;
timeService.RefreshSecondsElapsed += RefreshDisplay;
Initialize();
}
private async void Initialize()
{
ItemsPerPage = 5;
PageCount = 2;
await WaitForDataLoadAsync();
RefreshDisplay(null,null);
}
private void RefreshDisplay(object? sender, EventArgs? e)
{
Application.Current.Dispatcher.Invoke(() =>
{
int pageCount = (int)Math.Ceiling((double)TrainInfo.Count / (ItemsPerPage * PageCount));
LeftScreen.Clear();
RightScreen.Clear();
int startIndex = CurrentPageIndex * ItemsPerPage * PageCount;
var ItemsToShow = TrainInfo.Skip(startIndex).Take(ItemsPerPage * PageCount).ToList();
var leftItems = ItemsToShow.Where((item, index) => index % 2 == 0).ToList();
var rightItems = ItemsToShow.Where((item, index) => index % 2 == 1).ToList();
while (leftItems.Count < ItemsPerPage)
{
leftItems.Add(new TrainInfo());
}
while (rightItems.Count < ItemsPerPage)
{
rightItems.Add(new TrainInfo());
}
foreach (var item in leftItems)
{
LeftScreen.Add(item);
}
foreach (var item in rightItems)
{
RightScreen.Add(item);
}
CurrentPageIndex = CurrentPageIndex + 1 >= Math.Min(_settings.MaxPages, pageCount) ? 0 : CurrentPageIndex + 1;
});
}
}
}

View File

@@ -0,0 +1,389 @@
<Window x:Class="CRSim.ScreenSimulator.Views.Zibo.TicketCheckScreenView"
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.ChengduDong"
mc:Ignorable="d"
xmlns:converters="clr-namespace:CRSim.ScreenSimulator.Converters"
xmlns:converters1="clr-namespace:CRSim.Shared.Converters;assembly=CRSim.Shared"
FontFamily="微软雅黑" FontSize="20" FontWeight="Black"
Title="引导屏" SizeToContent="WidthAndHeight"
WindowStyle="None" AllowsTransparency="True" Background="#0036DF"
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="#0036DF"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<converters:TrainStateConverter x:Key="TrainStateConverter" WaitingText="正在候车"/>
<converters:TrainStateColorConverter x:Key="TrainStateColorConverter"/>
<converters:LandmarkToStringConverter x:Key="LandmarkToStringConverter"/>
<converters1:EmptyToVisibilityConverter x:Key="EmptyToVisibilityConverter" />
<converters:NumberToStringConverter x:Key="NumberToStringConverter"/>
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringConverter" Format="HH:mm" />
<converters1:DateTimeToStringConverter x:Key="DateTimeToStringTimeConverter" Format="yyyy/M/d HH:mm:ss" />
</Window.Resources>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<DataGrid ItemsSource="{Binding LeftScreen}" AutoGenerateColumns="False"
CanUserResizeColumns="False" CanUserSortColumns="False" CanUserAddRows="False"
CanUserResizeRows="False" CanUserReorderColumns="False"
FontFamily="微软雅黑" FontSize="20" FontWeight="Black" FontStretch="Condensed"
IsReadOnly="True" GridLinesVisibility="None" RowHeight="34"
AlternationCount="2" HeadersVisibility="Column" IsEnabled="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding TrainNumber}" MinWidth="80">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="车次" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Terminal}" MinWidth="90">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="终到站" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding DepartureTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="90">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="开点" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Platform}" MinWidth="60">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="站台" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn MinWidth="110">
<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="状态" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<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>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<!-- 偶数行样式 -->
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=AlternationIndex}" Value="1">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="#000000"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
<!-- 奇数行样式 -->
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=AlternationIndex}" Value="0">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="#012CF5"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
<!-- 中部屏幕 -->
<Grid Width="250" Height="200" Background="#0033cd" HorizontalAlignment="Center" VerticalAlignment="Center">
<!-- 图标 -->
<Grid Width="75" Height="75" Background="#0033cd" Margin="0,-90,0,0">
<Grid.Resources>
<DrawingImage x:Key="SvgImage">
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup.ClipGeometry>
<RectangleGeometry Rect="0,0,358,360" />
</DrawingGroup.ClipGeometry>
<DrawingGroup Transform="0.1,0,0,-0.1,0,360">
<GeometryDrawing Brush="#ffffff">
<GeometryDrawing.Geometry>
<PathGeometry FillRule="Nonzero" Figures="M154,3471C138,3461,109,3430,92,3403L60,3353 60,1814C60,911 64,262 69,243 74,225 83,205 89,198 145,129 171,104 214,79L265,50 1782,50C3294,50 3299,50 3352,71 3411,94 3439,116 3481,174L3510,213 3510,1774C3510,2817 3506,3347 3500,3372 3485,3424 3448,3464 3402,3478 3373,3487 2963,3490 1774,3490 240,3490 184,3489 154,3471z M3266,3315C3278,3304 3291,3285 3294,3273 3298,3260 3306,3250 3311,3250 3316,3250 3320,3009 3320,2635 3320,2282 3316,2020 3311,2020 3306,2020 3299,2009 3296,1996 3287,1960 3243,1950 3100,1950 2933,1950 2908,1941 2892,1870 2869,1772 2879,1685 2916,1645 2939,1620 2940,1620 3109,1620L3279,1620 3299,1594C3320,1568,3320,1560,3320,956L3319,345 3292,306C3249,244,3236,242,2861,241L2527,240 2561,263C2580,275 2605,305 2617,330 2638,371 2640,387 2640,562L2640,750 2699,750C2806,750 2861,782 2879,855 2893,912 2893,1281 2878,1340 2871,1368 2865,1612 2860,1995 2855,2510 2851,2610 2838,2640 2830,2659 2820,2691 2816,2710 2808,2753 2761,2806 2715,2826 2683,2839 2675,2838 2596,2810 2504,2777 2439,2772 2420,2795 2404,2814 2409,2820 2489,2871 2572,2923 2575,2930 2568,3091 2563,3205 2554,3230 2505,3251 2494,3256 2478,3264 2470,3269 2369,3331 2283,3346 2237,3310 2223,3299 2206,3290 2200,3290 2193,3290 2161,3278 2129,3264 2056,3231 2033,3197 2021,3101 2007,2990 2024,2938 2097,2873 2146,2829 2152,2820 2137,2814 2127,2810 2090,2812 2055,2818 1993,2828 1989,2827 1936,2799 1907,2783 1866,2751 1847,2727 1696,2547 1671,2537 1579,2625 1547,2655 1517,2680 1511,2680 1489,2680 1470,2740 1470,2805 1470,2865 1467,2874 1441,2901 1415,2926 1404,2930 1355,2930 1287,2930 1227,2902 1200,2857 1183,2831 1181,2815 1186,2765 1194,2693 1216,2624 1241,2591 1274,2549 1266,2540 1198,2540 1101,2539 1059,2526 1027,2485 1011,2466 992,2450 984,2450 960,2450 942,2493 942,2555 942,2647 917,2693 832,2758 812,2773 809,2781 815,2814 819,2834 831,2860 842,2869 876,2902 900,2964 907,3036 912,3096 909,3118 889,3175 863,3249 836,3274 770,3286 751,3290 726,3299 715,3306 689,3324 573,3324 538,3306 523,3298 498,3289 481,3285 465,3282 436,3264 417,3247 390,3222 381,3204 375,3165 371,3138 364,3107 358,3097 345,3073 365,2959 390,2910 400,2890 426,2865 449,2852 508,2818 517,2796 482,2772 467,2761 446,2751 435,2749 408,2743 382,2685 370,2603 365,2565 360,2408 360,2254L360,1972 330,1960C307,1950,293,1950,275,1958L250,1970 250,2643 250,3317 273,3328C289,3336 721,3338 1770,3337 3230,3335 3246,3335 3266,3315z M1401,2389C1407,2377 1428,2352 1446,2333 1465,2314 1492,2280 1507,2257 1538,2208 1549,2198 1612,2165 1664,2138 1736,2132 1802,2150 1851,2164 1906,2226 1915,2280 1922,2324 1953,2349 1985,2336 1999,2331 2001,2321 1995,2272 1991,2241 1986,1801 1984,1294L1980,374 2003,329C2016,305,2041,275,2060,263L2093,240 1204,240C385,240 312,241 290,257 276,266 262,279 258,284 254,290 250,588 250,946L250,1596 299,1609C335,1618,470,1620,837,1618L1326,1615 1369,1643C1420,1677 1440,1719 1440,1794 1440,1859 1409,1933 1374,1948 1362,1954 1271,1960 1171,1961 1063,1962 981,1968 967,1974 951,1982 944,1996 942,2023 940,2044 943,2060 949,2060 955,2060 966,2074 975,2090 984,2107 995,2120 1001,2120 1007,2120 1046,2144 1088,2174 1131,2203 1197,2244 1236,2263 1308,2299 1320,2312 1320,2355 1320,2396 1331,2410 1361,2410 1380,2410 1393,2403 1401,2389z M2327,305C2330,296,2349,278,2369,265L2405,240 2310,240 2215,240 2251,265C2271,278 2290,296 2293,305 2297,313 2304,320 2310,320 2316,320 2323,313 2327,305z" />
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Grid.Resources>
<Image Source="{StaticResource SvgImage}"/>
</Grid>
<!-- 检票口文字 -->
<Grid Width="250" Height="70" Background="#0033cd" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,60,0,0">
<TextBlock Margin="0,0,130,0" VerticalAlignment="Top" HorizontalAlignment="Center" FontWeight="Black" FontSize="60" FontFamily="等线"
Foreground="#FFFFFF" Text="检" />
<TextBlock Margin="0,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Center" FontWeight="Black" FontSize="60" FontFamily="等线"
Foreground="#FFFFFF" Text="票" />
<TextBlock Margin="130,0,0,0" VerticalAlignment="Top" HorizontalAlignment="Center" FontWeight="Black" FontSize="60" FontFamily="等线"
Foreground="#FFFFFF" Text="口" />
</Grid>
<TextBlock Margin="0,164,0,0" VerticalAlignment="Top" HorizontalAlignment="Center" FontWeight="Black" FontSize="32" FontFamily="等线"
Foreground="#FFFFFF" Text="Check in" />
</Grid>
<DataGrid ItemsSource="{Binding RightScreen}" AutoGenerateColumns="False"
CanUserResizeColumns="False" CanUserSortColumns="False" CanUserAddRows="False"
CanUserResizeRows="False" CanUserReorderColumns="False"
FontFamily="微软雅黑" FontSize="20" FontWeight="Black" FontStretch="Condensed"
IsReadOnly="True" GridLinesVisibility="None" RowHeight="34"
AlternationCount="2" HeadersVisibility="Column" IsEnabled="False">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding TrainNumber}" MinWidth="80">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="车次" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Terminal}" MinWidth="90">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="终到站" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding DepartureTime, Converter={StaticResource DateTimeToStringConverter}}" MinWidth="90">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="开点" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn Binding="{Binding Platform}" MinWidth="60">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=DataGridColumnHeader}}">
<TextBlock Text="站台" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
<DataGridTextColumn MinWidth="110">
<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="状态" HorizontalAlignment="Stretch" Padding="1" FontWeight="Black" Height="28"
Foreground="#ffffff" TextAlignment="Center">
<TextBlock.Background>
<SolidColorBrush Color="#274cbd"/>
</TextBlock.Background>
</TextBlock>
</StackPanel>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<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>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<!-- 偶数行样式 -->
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=AlternationIndex}" Value="1">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="#000000"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
<!-- 奇数行样式 -->
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=AlternationIndex}" Value="0">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="#012CF5"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="White"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
</StackPanel>
<!-- 下部信息条 -->
<Grid Background="#000000" HorizontalAlignment="Stretch" Height="25">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Grid.ColumnSpan="3" Text="{Binding Text}" Foreground="Red" Margin="30,2" FontSize="16" FontFamily="微软雅黑" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<TextBlock Grid.Column="2" Text="{Binding CurrentTime,Converter={StaticResource DateTimeToStringTimeConverter}}" Foreground="Red" Margin="30,2" FontSize="16" FontFamily="微软雅黑" FontWeight="Bold" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Grid>
</StackPanel>
</Window>

View File

@@ -0,0 +1,36 @@
using CRSim.ScreenSimulator.ViewModels.Zibo;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
namespace CRSim.ScreenSimulator.Views.Zibo
{
/// <summary>
/// SecondaryScreen.xaml 的交互逻辑
/// </summary>
public partial class TicketCheckScreenView : Window
{
public TicketCheckScreenViewModel ViewModel { get; }
public TicketCheckScreenView(TicketCheckScreenViewModel 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

@@ -59,6 +59,8 @@ namespace CRSim
services.AddTransient<ScreenSimulator.Views.Zibo.PrimaryScreenView>();
services.AddTransient<ScreenSimulator.ViewModels.Zibo.SecondaryScreenViewModel>();
services.AddTransient<ScreenSimulator.Views.Zibo.SecondaryScreenView>();
services.AddTransient<ScreenSimulator.ViewModels.Zibo.TicketCheckScreenViewModel>();
services.AddTransient<ScreenSimulator.Views.Zibo.TicketCheckScreenView>();
services.AddTransient<ScreenSimulator.ViewModels.Jinanxi.SmallScreenViewModel>();
services.AddTransient<ScreenSimulator.Views.Jinanxi.SmallScreenView>();
services.AddTransient<ScreenSimulator.ViewModels.GuangdongIntercity.SecondaryScreenViewModel>();

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -52,6 +52,7 @@
<Resource Include="Assets\StyleImages\Tianjin\PlatformScreen.png" />
<Resource Include="Assets\StyleImages\Zibo\PrimaryScreen.png" />
<Resource Include="Assets\StyleImages\Zibo\SecondaryScreen.png" />
<Resource Include="Assets\StyleImages\Zibo\TicketCheckScreen.png" />
<Resource Include="Assets\win11-dashboard.dark.png" />
<Resource Include="Assets\win11-dashboard.light.png" />
<EmbeddedResource Include="Models\StylesInfoData.json" />

View File

@@ -163,5 +163,17 @@
"Station",
"Text"
]
},
{
"UniqueId": "Zibo TicketCheckScreen",
"Title": "淄博站检票口看板",
"Station": "Zibo",
"StyleName": "TicketCheckScreenView",
"ImagePath": "Assets/StyleImages/Zibo/TicketCheckScreen.png",
"Parameters": [
"Station",
"TicketCheck",
"Text"
]
}
]