WInUI 3.0 桌面 - 尝试导航时异常崩溃

WInUI 3.0 Desktop - Crash on exception when try to navigate

我想改变框架,但我得到这个例外:

导航:

Frame rootFrame = new Frame();
rootFrame.Navigate(typeof(ScoreWindow), null, new EntranceNavigationTransitionInfo());

构造函数出现异常:

        public ScoreWindow()
        {
            this.InitializeComponent();
            results = new List<Result>();
            playerList = new();
            LoadData();
            var _resultsView = ConvertToView();
            sfDataGrid.ItemsSource = _resultsView;
        }

提前感谢您的回答,祝您节日快乐!

P.S。感谢 Raymond,我检测到这条消息:

WinUI: Error creating second Desktop Window on the current process. No more than one Desktop Window is allowed per process.

还有一个问题:如何把当前帧换成其他帧?我的意思是,我有登录视图,用户成功登录并想查看 data/other 东西。

休息了一会儿,我明白了我做错了什么。有一种方法可以在页面之间导航。

规则 #1:在 WinUI 中,您只有一个活动的 window,它是 MainWindow。总是。如果你想改变布局,你必须使用框架。

在MainWindow.xaml中,你这样写:

    <Grid>
        <Frame x:Name="mainFrame"/>
    </Grid>

元素“框架”提供了在页面之间导航的能力。

然后切换到 MainWindow.xaml.cs 并且在构造函数中必须是这样的:

        public MainWindow()
        {
            InitializeComponent();
            mainFrame.Navigate(typeof(NameOfYourPage));
        }

它将立即激活您的页面。

然后,如果您想从一个页面导航到另一个页面,请在页面控制中写入:

Frame.Navigate(typeof(NameOfYourPage), null, new EntranceNavigationTransitionInfo());

第三个参数是animation,但是没注意到变化

您可以在此处找到更多信息:

Tutorial about navigation

Microsoft documentation