导航到另一个 XAML 文件

Navigating to another XAML file

我有三个 XAML 个文件,它们是 mainwindow.xaml,login.xaml,homepage.xaml。由于文件可以通过框架导航,我在主 window 中添加了一个适合整个屏幕的框架。

主窗口的

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.cs

导航到 homepage.xaml

用于从 login.xaml.cs

导航到 homepage.xaml 的代码
MainWindow mw = new MainWindow();
mw.pageFrame.Navigate(new homepage());

此代码进入 if 语句部分,如果执行这些语句,我 checked 通过使用断点。它 does 执行那些并且对象被填充但导航不会发生。

我做错了什么?这不是正确的做法吗?

问题是,好吧,mwnew window,甚至根本没有显示。并且您停留在 MainWindow 的旧实例中,旧 MainWindow 没有任何变化。

您需要从旧 MainWindow 中导航,而不是新 MainWindow。

((MainWindow)(Application.Current.MainWindow)).pageFrame.Navigate(new homepage());

您有对您的主要 window、Application.Current.MainWindow 的引用,但您需要先将其转换为您自己的 MainWindow 类型。