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,但是没注意到变化
您可以在此处找到更多信息:
我想改变框架,但我得到这个例外:
导航:
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,但是没注意到变化
您可以在此处找到更多信息: