导航到另一个XAML文件

时间:2015-01-14 05:21:58

标签: c# wpf xaml

我有三个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>

MainWindow的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语句部分和i checked。并且does执行这些并填充对象,但导航不会发生。

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

1 个答案:

答案 0 :(得分:1)

问题是,mw是一个窗口,甚至根本没有显示。你留在MainWindow的旧实例中,你的旧MainWindow没有任何反应。

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

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

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