XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
GB18030 / GBK
using Microsoft.UI.Xaml.Navigation;
using SpaceEngineersBlueprintEditor.Model;
using SpaceEngineersBlueprintEditor.ViewModels;
using XFEExtension.NetCore.WinUIHelper.Utilities;

namespace SpaceEngineersBlueprintEditor.Views;

/// <summary>
/// 蓝图编辑页面
/// </summary>
public sealed partial class BlueprintEditPage : Page
{
    public static BlueprintEditPage? Current { get; set; }
    public BlueprintEditPageViewModel ViewModel { get; set; } = new();
    public BlueprintEditPage()
    {
        PageManager.AddOrUpdateCurrentPage(Current = this);
        this.InitializeComponent();
        NavigationCacheMode = NavigationCacheMode.Required;
        ViewModel.AutoNavigationParameterService.Initialize(this);
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        if (ViewModel.NavigationViewService is not null)
        {
            ViewModel.NavigationViewService.Header = null;
            ViewModel.NavigationViewService.ContentMargin = new();
        }
        ViewModel.AutoNavigationParameterService.OnParameterChange(e.Parameter);
    }

    protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
    {
        base.OnNavigatingFrom(e);
        if (ViewModel.NavigationViewService is not null)
            ViewModel.NavigationViewService.ContentMargin = new(56, 24, 56, 0);
        ViewModel.BackgroundImageService?.ResetBackground();
    }

    private void TabView_TabCloseRequested(TabView sender, TabViewTabCloseRequestedEventArgs args)
    {
        ViewModel.TabViewItems.Remove(args.Tab);
        if (ViewModel.TabViewItems.Count == 0)
            ViewModel.CreateTabViewItem(null);
    }
}