diff --git a/DMS.WPF/Assets/AppIcon2.ico b/DMS.WPF/Assets/AppIcon2.ico new file mode 100644 index 0000000..6c7fb71 Binary files /dev/null and b/DMS.WPF/Assets/AppIcon2.ico differ diff --git a/DMS.WPF/DMS.WPF.csproj b/DMS.WPF/DMS.WPF.csproj index db2515a..799a214 100644 --- a/DMS.WPF/DMS.WPF.csproj +++ b/DMS.WPF/DMS.WPF.csproj @@ -10,6 +10,7 @@ + diff --git a/DMS.WPF/Services/INavigationService.cs b/DMS.WPF/Services/INavigationService.cs index 2ca3a07..4b9f65f 100644 --- a/DMS.WPF/Services/INavigationService.cs +++ b/DMS.WPF/Services/INavigationService.cs @@ -15,8 +15,4 @@ public interface INavigationService /// 要传递给目标ViewModel的参数。 Task NavigateToAsync(string viewKey, object parameter = null); - /// - /// 显示主窗口。 - /// - Task ShowMainWindowAsync(); } diff --git a/DMS.WPF/Services/NavigationService.cs b/DMS.WPF/Services/NavigationService.cs index cca5932..efee813 100644 --- a/DMS.WPF/Services/NavigationService.cs +++ b/DMS.WPF/Services/NavigationService.cs @@ -48,20 +48,7 @@ public class NavigationService : INavigationService mainViewModel.CurrentViewModel = viewModel; } - /// - /// 显示主窗口。 - /// - public Task ShowMainWindowAsync() - { - return App.Current.Dispatcher.InvokeAsync(() => - { - var mainView = _serviceProvider.GetRequiredService(); - // 将 MainView 设置为新的主窗口 - App.Current.MainWindow = mainView; - mainView.Show(); - }) - .Task; - } + private Type GetViewModelTypeByKey(string key) { diff --git a/DMS.WPF/ViewModels/MainViewModel.cs b/DMS.WPF/ViewModels/MainViewModel.cs index e6a7ace..ab8b477 100644 --- a/DMS.WPF/ViewModels/MainViewModel.cs +++ b/DMS.WPF/ViewModels/MainViewModel.cs @@ -28,7 +28,6 @@ public partial class MainViewModel : ViewModelBase private readonly DataServices _dataServices; private readonly IDialogService _dialogService; private readonly ILogger _logger; - private readonly NavgatorServices _navgatorServices; /// /// 当前显示的视图模型。 @@ -49,22 +48,18 @@ public partial class MainViewModel : ViewModelBase /// 数据服务。 /// 对话框服务。 /// 日志记录器。 - public MainViewModel(NavgatorServices navgatorServices, DataServices dataServices, IDialogService dialogService, + public MainViewModel( ILogger logger) { - _navgatorServices = navgatorServices; - _dataServices = dataServices; - _dialogService = dialogService; + // _dataServices = dataServices; _logger = logger; - _navgatorServices.OnViewModelChanged += () => { CurrentViewModel = _navgatorServices.CurrentViewModel; }; - CurrentViewModel = new HomeViewModel(); CurrentViewModel.OnLoaded(); // 发送消息加载数据 MessageHelper.SendLoadMessage(LoadTypes.All); // 当菜单加载成功后,在前台显示菜单 - dataServices.OnMenuTreeListChanged += (menus) => { Menus = new ObservableCollection(menus); }; + // dataServices.OnMenuTreeListChanged += (menus) => { Menus = new ObservableCollection(menus); }; } /// diff --git a/DMS.WPF/ViewModels/SplashViewModel.cs b/DMS.WPF/ViewModels/SplashViewModel.cs index 4e74e13..343179a 100644 --- a/DMS.WPF/ViewModels/SplashViewModel.cs +++ b/DMS.WPF/ViewModels/SplashViewModel.cs @@ -6,6 +6,8 @@ using DMS.WPF.Services; using System; using System.Threading.Tasks; using DMS.Application.Services; +using DMS.WPF.Views; +using Microsoft.Extensions.DependencyInjection; namespace DMS.WPF.ViewModels; @@ -38,24 +40,27 @@ public partial class SplashViewModel : ObservableObject LoadingMessage = "正在加载系统配置..."; // 可以在这里添加加载配置的逻辑 - await Task.Delay(1500); // 模拟耗时 + await Task.Delay(500); // 模拟耗时 LoadingMessage = "正在连接后台服务..."; // 可以在这里添加连接服务的逻辑 - await Task.Delay(1500); // 模拟耗时 + await Task.Delay(500); // 模拟耗时 LoadingMessage = "加载完成,正在启动主界面..."; - await Task.Delay(1500); + await Task.Delay(500); // 初始化完成,显示主窗口 - var navigationService = (INavigationService)_serviceProvider.GetService(typeof(INavigationService)); - await navigationService.ShowMainWindowAsync(); + var mainView = App.Current.Services.GetRequiredService(); + // 将 MainView 设置为新的主窗口 + App.Current.MainWindow = mainView; + mainView.Show(); return true; } catch (Exception ex) { // 处理初始化过程中的异常 LoadingMessage = $"初始化失败: {ex.Message}"; + Console.WriteLine($"初始化失败: {ex.Message}"); // 在此可以记录日志或显示错误对话框 return false; } diff --git a/DMS.WPF/Views/MainView.xaml b/DMS.WPF/Views/MainView.xaml index e188290..bb281cd 100644 --- a/DMS.WPF/Views/MainView.xaml +++ b/DMS.WPF/Views/MainView.xaml @@ -42,7 +42,7 @@ diff --git a/DMS.WPF/Views/MainView.xaml.cs b/DMS.WPF/Views/MainView.xaml.cs index f9cc13a..7160b12 100644 --- a/DMS.WPF/Views/MainView.xaml.cs +++ b/DMS.WPF/Views/MainView.xaml.cs @@ -15,14 +15,12 @@ namespace DMS.WPF.Views; public partial class MainView : Window { - private readonly DataServices _dataServices; private MainViewModel _viewModel; - public MainView(DataServices dataServices) + public MainView() { InitializeComponent(); _viewModel = App.Current.Services.GetRequiredService(); - _dataServices = dataServices; DataContext = _viewModel; NlogHelper.Info("主界面加载成功"); diff --git a/DMS.WPF/Views/SplashWindow.xaml b/DMS.WPF/Views/SplashWindow.xaml index 74e264d..2c47bc5 100644 --- a/DMS.WPF/Views/SplashWindow.xaml +++ b/DMS.WPF/Views/SplashWindow.xaml @@ -10,7 +10,7 @@ - +