导航到另一个 XAML 文件
本文关键字:文件 XAML 另一个 导航 | 更新日期: 2023-09-27 18:37:22
我有三个 XAML 文件,它们是mainwindow.xaml,login.xaml,homepage.xaml
.由于文件可以在框架中导航,因此我在主窗口中添加了一个适合整个屏幕的框架。
MainWindow 的 XAML:
<Window x:Class="Myproject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" WindowState="Maximized" Initialized="Window_Initialized">
<Grid>
<Frame Name="pageFrame"></Frame>
</Grid>
</Window>
主窗口的CS文件:
private void Window_Initialized(object sender, EventArgs e)
{
pageFrame.Height = SystemParameters.WorkArea.Height-10;
pageFrame.Width = SystemParameters.WorkArea.Width;
pageFrame.Navigate(new login());
}
它可以完美地导航到登录页面并在那里执行登录操作。
问题是它无法从login.xaml导航到homepage.xaml.cs
用于从login.xaml导航到homepage.xaml的代码.cs
MainWindow mw = new MainWindow();
mw.pageFrame.Navigate(new homepage());
此代码位于 if 语句部分,如果执行这些语句,我会使用断点checked
。它does
执行这些,并且填充对象,但不会发生导航。
我做错了什么?这不是正确的方法吗?
问题是,好吧,mw
是一个新窗口,它甚至根本没有显示。并且您停留在旧的 MainWindow 实例中,您的旧 MainWindow 没有任何反应。
您需要从旧的主窗口中导航,而不是新的主窗口。
((MainWindow)(Application.Current.MainWindow)).pageFrame.Navigate(new homepage());
您有一个对主窗口的引用,Application.Current.MainWindow
,但您需要先将其转换为您自己的MainWindow
类型。