mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-04-03 11:05:16 +08:00
* new INavigationAware, remove PageService * fix run * fix title bar * override OnNavigatedTo * try fix WindowStartupLocation
71 lines
2.1 KiB
C#
71 lines
2.1 KiB
C#
using BetterGenshinImpact.Helpers.DpiAwareness;
|
|
using BetterGenshinImpact.ViewModel;
|
|
using Microsoft.Extensions.Logging;
|
|
using System;
|
|
using System.Windows;
|
|
using System.Windows.Media;
|
|
using BetterGenshinImpact.GameTask;
|
|
using BetterGenshinImpact.Helpers.Ui;
|
|
using Wpf.Ui;
|
|
using Wpf.Ui.Abstractions;
|
|
using Wpf.Ui.Controls;
|
|
using Wpf.Ui.Tray.Controls;
|
|
|
|
namespace BetterGenshinImpact.View;
|
|
|
|
public partial class MainWindow : INavigationWindow
|
|
{
|
|
private readonly ILogger<MainWindow> _logger = App.GetLogger<MainWindow>();
|
|
|
|
public MainWindowViewModel ViewModel { get; }
|
|
|
|
public MainWindow(MainWindowViewModel viewModel, INavigationService navigationService, ISnackbarService snackbarService)
|
|
{
|
|
_logger.LogDebug("主窗体实例化");
|
|
DataContext = ViewModel = viewModel;
|
|
|
|
InitializeComponent();
|
|
this.InitializeDpiAwareness();
|
|
|
|
snackbarService.SetSnackbarPresenter(SnackbarPresenter);
|
|
navigationService.SetNavigationControl(RootNavigation);
|
|
|
|
Application.Current.MainWindow = this;
|
|
|
|
Loaded += (s, e) => Activate();
|
|
}
|
|
|
|
protected override void OnSourceInitialized(EventArgs e)
|
|
{
|
|
base.OnSourceInitialized(e);
|
|
WindowHelper.TryApplySystemBackdrop(this);
|
|
}
|
|
|
|
protected override void OnClosed(EventArgs e)
|
|
{
|
|
_logger.LogDebug("主窗体退出");
|
|
base.OnClosed(e);
|
|
App.GetService<NotifyIconViewModel>()?.Exit();
|
|
}
|
|
|
|
private void OnNotifyIconLeftDoubleClick(NotifyIcon sender, RoutedEventArgs e)
|
|
{
|
|
App.GetService<NotifyIconViewModel>()?.ShowOrHide();
|
|
}
|
|
|
|
public INavigationView GetNavigation() => RootNavigation;
|
|
|
|
public bool Navigate(Type pageType) => RootNavigation.Navigate(pageType);
|
|
|
|
public void SetServiceProvider(IServiceProvider serviceProvider)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public void SetPageService(INavigationViewPageProvider navigationViewPageProvider) =>
|
|
RootNavigation.SetPageProviderService(navigationViewPageProvider);
|
|
|
|
public void ShowWindow() => Show();
|
|
|
|
public void CloseWindow() => Close();
|
|
} |