导航到另一个 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
执行那些并且对象被填充但导航不会发生。
我做错了什么?这不是正确的做法吗?
问题是,好吧,mw
是 new window,甚至根本没有显示。并且您停留在 MainWindow 的旧实例中,旧 MainWindow 没有任何变化。
您需要从旧 MainWindow 中导航,而不是新 MainWindow。
((MainWindow)(Application.Current.MainWindow)).pageFrame.Navigate(new homepage());
您有对您的主要 window、Application.Current.MainWindow
的引用,但您需要先将其转换为您自己的 MainWindow
类型。
我有三个 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
执行那些并且对象被填充但导航不会发生。
我做错了什么?这不是正确的做法吗?
问题是,好吧,mw
是 new window,甚至根本没有显示。并且您停留在 MainWindow 的旧实例中,旧 MainWindow 没有任何变化。
您需要从旧 MainWindow 中导航,而不是新 MainWindow。
((MainWindow)(Application.Current.MainWindow)).pageFrame.Navigate(new homepage());
您有对您的主要 window、Application.Current.MainWindow
的引用,但您需要先将其转换为您自己的 MainWindow
类型。