From 78574289d682a5f1ef6d3bc37016ca9879b11464 Mon Sep 17 00:00:00 2001 From: denglihong2007 <2639367181@qq.com> Date: Sat, 19 Apr 2025 21:59:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=83=A8=E5=88=86=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=88=96=E8=80=85=E6=98=BE=E7=A4=BA=E6=95=88?= =?UTF-8?q?=E6=9E=9C=E5=B7=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Converters/LocationToStringConverter.cs | 2 - .../Beijing/ArrivalScreenViewModel.cs | 29 +++++++++- .../ConcourseBridgeScreen.cs} | 6 +-- .../Views/Beijing/ArrivalScreenView.xaml | 39 +++++++------- .../ConcourseBridgeScreen.xaml} | 46 +++++++--------- .../ConcourseBridgeScreen.xaml.cs} | 10 ++-- .../Views/Zibo/ConcourseBridgeScreenView.xaml | 50 ++++++++---------- CRSim/App.xaml.cs | 4 +- .../ConcourseBridgeScreen.png} | Bin CRSim/CRSim.csproj | 2 +- CRSim/Models/StylesInfoData.json | 14 ++--- 11 files changed, 106 insertions(+), 96 deletions(-) rename CRSim.ScreenSimulator/ViewModels/{Daqingdong/PlatfromScreenViewModel.cs => DaqingDong/ConcourseBridgeScreen.cs} (81%) rename CRSim.ScreenSimulator/Views/{Daqingdong/PlatformScreenView.xaml => DaqingDong/ConcourseBridgeScreen.xaml} (84%) rename CRSim.ScreenSimulator/Views/{Daqingdong/PlatformScreenView.xaml.cs => DaqingDong/ConcourseBridgeScreen.xaml.cs} (70%) rename CRSim/Assets/StyleImages/{Daqingdong/PlatformScreen.png => DaqingDong/ConcourseBridgeScreen.png} (100%) diff --git a/CRSim.ScreenSimulator/Converters/LocationToStringConverter.cs b/CRSim.ScreenSimulator/Converters/LocationToStringConverter.cs index ea2c844..699530c 100644 --- a/CRSim.ScreenSimulator/Converters/LocationToStringConverter.cs +++ b/CRSim.ScreenSimulator/Converters/LocationToStringConverter.cs @@ -13,11 +13,9 @@ namespace CRSim.ScreenSimulator.Converters */ object IMultiValueConverter.Convert(object[] values, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) { - // return $"{values[0]},{values[1]},{values[2]}"; if (values[0] is int Length && values[1] is int Location) { if(DisplayMode == "least" && values[2] is string Direction){ - // return Direction; if(Direction == "left") { if(Location <= Length) diff --git a/CRSim.ScreenSimulator/ViewModels/Beijing/ArrivalScreenViewModel.cs b/CRSim.ScreenSimulator/ViewModels/Beijing/ArrivalScreenViewModel.cs index 0bccc48..25206ba 100644 --- a/CRSim.ScreenSimulator/ViewModels/Beijing/ArrivalScreenViewModel.cs +++ b/CRSim.ScreenSimulator/ViewModels/Beijing/ArrivalScreenViewModel.cs @@ -7,11 +7,13 @@ namespace CRSim.ScreenSimulator.ViewModels.Beijing { public class ArrivalScreenViewModel : ScreenViewModel { + private ITimeService _timeService; public ObservableCollection Screen { get; set; } = []; public ArrivalScreenViewModel(ITimeService timeService, ISettingsService settingsService) : base(timeService, settingsService) { - StationType = StationType.Departure; + _timeService = timeService; + StationType = StationType.Arrival; timeService.RefreshSecondsElapsed += RefreshDisplay; Initialize(); } @@ -32,5 +34,30 @@ namespace CRSim.ScreenSimulator.ViewModels.Beijing } }); } + public override void RefreshData(object? sender, EventArgs e) + { + List itemsToRemove = []; + foreach (TrainInfo trainInfo in TrainInfo) + { + if (trainInfo.DepartureTime == null) + { + if (trainInfo.ArrivalTime.Value.Add(_settings.StopDisplayFromArrivalDuration) < _timeService.GetDateTimeNow()) + { + itemsToRemove.Add(trainInfo); + } + } + else + { + if (trainInfo.DepartureTime.Value < _timeService.GetDateTimeNow()) + { + itemsToRemove.Add(trainInfo); + } + } + } + foreach (var item in itemsToRemove) + { + TrainInfo.Remove(item); + } + } } } diff --git a/CRSim.ScreenSimulator/ViewModels/Daqingdong/PlatfromScreenViewModel.cs b/CRSim.ScreenSimulator/ViewModels/DaqingDong/ConcourseBridgeScreen.cs similarity index 81% rename from CRSim.ScreenSimulator/ViewModels/Daqingdong/PlatfromScreenViewModel.cs rename to CRSim.ScreenSimulator/ViewModels/DaqingDong/ConcourseBridgeScreen.cs index f2a2e15..c33ccbd 100644 --- a/CRSim.ScreenSimulator/ViewModels/Daqingdong/PlatfromScreenViewModel.cs +++ b/CRSim.ScreenSimulator/ViewModels/DaqingDong/ConcourseBridgeScreen.cs @@ -3,12 +3,12 @@ using CRSim.Core.Services; using CRSim.ScreenSimulator.Models; using System.Collections.ObjectModel; using System.Windows; -namespace CRSim.ScreenSimulator.ViewModels.Daqingdong +namespace CRSim.ScreenSimulator.ViewModels.DaqingDong { - public class PlatformScreenViewModel : ScreenViewModel + public class ConcourseBridgeScreenViewModel : ScreenViewModel { public ObservableCollection Screen { get; set; } = []; - public PlatformScreenViewModel(ITimeService timeService, ISettingsService settingsService) + public ConcourseBridgeScreenViewModel(ITimeService timeService, ISettingsService settingsService) : base(timeService, settingsService) { StationType = StationType.Departure; diff --git a/CRSim.ScreenSimulator/Views/Beijing/ArrivalScreenView.xaml b/CRSim.ScreenSimulator/Views/Beijing/ArrivalScreenView.xaml index 2a797df..73023a5 100644 --- a/CRSim.ScreenSimulator/Views/Beijing/ArrivalScreenView.xaml +++ b/CRSim.ScreenSimulator/Views/Beijing/ArrivalScreenView.xaml @@ -9,7 +9,7 @@ xmlns:converters1="clr-namespace:CRSim.Shared.Converters;assembly=CRSim.Shared" FontFamily="等线" FontSize="25" FontWeight="Bold" Title="引导屏" SizeToContent="WidthAndHeight" - WindowStyle="None" AllowsTransparency="True" Background="#253f71" + WindowStyle="None" AllowsTransparency="True" Background="Black" KeyDown="Window_KeyDown" ResizeMode="NoResize" MouseDown="Window_MouseDown"> @@ -17,7 +17,7 @@ - + @@ -29,29 +29,28 @@ - - - - - + + - + - - - + + + + + - - + @@ -64,7 +63,7 @@ - + @@ -77,7 +76,7 @@ - + @@ -90,7 +89,7 @@ - + @@ -103,7 +102,7 @@ - + @@ -116,7 +115,7 @@ - + @@ -135,7 +134,7 @@ diff --git a/CRSim.ScreenSimulator/Views/Daqingdong/PlatformScreenView.xaml b/CRSim.ScreenSimulator/Views/DaqingDong/ConcourseBridgeScreen.xaml similarity index 84% rename from CRSim.ScreenSimulator/Views/Daqingdong/PlatformScreenView.xaml rename to CRSim.ScreenSimulator/Views/DaqingDong/ConcourseBridgeScreen.xaml index 7dc9031..6e25c1c 100644 --- a/CRSim.ScreenSimulator/Views/Daqingdong/PlatformScreenView.xaml +++ b/CRSim.ScreenSimulator/Views/DaqingDong/ConcourseBridgeScreen.xaml @@ -1,10 +1,10 @@ - - - - - - - - - - - - - + + + + + + + - @@ -171,17 +166,12 @@ - - - - - - - - - - - - + + + + + + + diff --git a/CRSim.ScreenSimulator/Views/Daqingdong/PlatformScreenView.xaml.cs b/CRSim.ScreenSimulator/Views/DaqingDong/ConcourseBridgeScreen.xaml.cs similarity index 70% rename from CRSim.ScreenSimulator/Views/Daqingdong/PlatformScreenView.xaml.cs rename to CRSim.ScreenSimulator/Views/DaqingDong/ConcourseBridgeScreen.xaml.cs index 0a7e272..3e38aab 100644 --- a/CRSim.ScreenSimulator/Views/Daqingdong/PlatformScreenView.xaml.cs +++ b/CRSim.ScreenSimulator/Views/DaqingDong/ConcourseBridgeScreen.xaml.cs @@ -1,16 +1,16 @@ -using CRSim.ScreenSimulator.ViewModels.Daqingdong; +using CRSim.ScreenSimulator.ViewModels.DaqingDong; using System.Windows; using System.Windows.Input; using System.Windows.Media; -namespace CRSim.ScreenSimulator.Views.Daqingdong +namespace CRSim.ScreenSimulator.Views.DaqingDong { /// /// SecondaryScreen.xaml 的交互逻辑 /// - public partial class PlatformScreenView : Window + public partial class ConcourseBridgeScreenView : Window { - public PlatformScreenViewModel ViewModel { get; } - public PlatformScreenView(PlatformScreenViewModel viewModel) + public ConcourseBridgeScreenViewModel ViewModel { get; } + public ConcourseBridgeScreenView(ConcourseBridgeScreenViewModel viewModel) { InitializeComponent(); RenderOptions.SetEdgeMode(this, EdgeMode.Aliased); diff --git a/CRSim.ScreenSimulator/Views/Zibo/ConcourseBridgeScreenView.xaml b/CRSim.ScreenSimulator/Views/Zibo/ConcourseBridgeScreenView.xaml index cb75ddf..86690bd 100644 --- a/CRSim.ScreenSimulator/Views/Zibo/ConcourseBridgeScreenView.xaml +++ b/CRSim.ScreenSimulator/Views/Zibo/ConcourseBridgeScreenView.xaml @@ -31,27 +31,25 @@ - - - - - - - - + + + - + - - - + + + + + - + IsReadOnly="True" GridLinesVisibility="None" RowHeight="34" Foreground="White" + HeadersVisibility="Column" IsEnabled="False" Margin="0,4"> @@ -155,20 +153,18 @@ - - - - - + + - + - - - - - - + + + + + + diff --git a/CRSim/App.xaml.cs b/CRSim/App.xaml.cs index f7c8465..eed0b9c 100644 --- a/CRSim/App.xaml.cs +++ b/CRSim/App.xaml.cs @@ -83,8 +83,8 @@ services.AddTransient(); services.AddTransient(); services.AddTransient(); - services.AddTransient(); - services.AddTransient(); + services.AddTransient(); + services.AddTransient(); }).Build(); [STAThread] diff --git a/CRSim/Assets/StyleImages/Daqingdong/PlatformScreen.png b/CRSim/Assets/StyleImages/DaqingDong/ConcourseBridgeScreen.png similarity index 100% rename from CRSim/Assets/StyleImages/Daqingdong/PlatformScreen.png rename to CRSim/Assets/StyleImages/DaqingDong/ConcourseBridgeScreen.png diff --git a/CRSim/CRSim.csproj b/CRSim/CRSim.csproj index 3355b5b..af84505 100644 --- a/CRSim/CRSim.csproj +++ b/CRSim/CRSim.csproj @@ -73,7 +73,7 @@ - + diff --git a/CRSim/Models/StylesInfoData.json b/CRSim/Models/StylesInfoData.json index f15868e..8f67d11 100644 --- a/CRSim/Models/StylesInfoData.json +++ b/CRSim/Models/StylesInfoData.json @@ -217,7 +217,7 @@ "Title": "淄博站廊桥看板", "Station": "淄博", "Author": "wxl0430", - "Type": "站台屏", + "Type": "走廊出发屏", "ImagePath": "Assets/StyleImages/Zibo/ConcourseBridgeScreen.png", "Parameters": [ "Station", @@ -262,10 +262,10 @@ }, { "UniqueId": "Beijing.ArrivalScreen", - "Title": "北京站到达看板", + "Title": "北京站地道到达看板", "Station": "北京", "Author": "wxl0430", - "Type": "到达屏(站台)", + "Type": "走廊到达屏", "ImagePath": "Assets/StyleImages/Beijing/ArrivalScreen.png", "Parameters": [ "Station", @@ -273,12 +273,12 @@ ] }, { - "UniqueId": "Daqingdong.PlatformScreen", - "Title": "大庆东站站台看板", + "UniqueId": "DaqingDong.ConcourseBridgeScreen", + "Title": "大庆东站廊桥看板", "Station": "大庆东", "Author": "wxl0430", - "Type": "站台屏", - "ImagePath": "Assets/StyleImages/Daqingdong/PlatformScreen.png", + "Type": "走廊出发屏", + "ImagePath": "Assets/StyleImages/DaqingDong/ConcourseBridgeScreen.png", "Parameters": [ "Station", "Platform",