我有三个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
执行这些并填充对象,但导航不会发生。
我做错了什么?这不是正确的方法吗?
答案 0 :(得分:1)
问题是,mw
是一个新窗口,甚至根本没有显示。你留在MainWindow的旧实例中,你的旧MainWindow没有任何反应。
您需要从旧的MainWindow中导航,而不是新的MainWindow。
((MainWindow)(Application.Current.MainWindow)).pageFrame.Navigate(new homepage());
您有一个对主窗口Application.Current.MainWindow
的引用,但您需要先将其转换为您自己的MainWindow
类型。