我有一个简单的系统,可以在多个页面之间进行切换。 MainWindow
具有一些重定向到页面的功能:
每个其他功能都重定向到另一个页面。
private void BtnDebug_Click(object sender, RoutedEventArgs e)
{
FrContent.Content = new Page_Debug();
}
这很好用,因为所有这些功能都是从MainWindow
调用的。我还需要从Page
调用它们,在上述系统不起作用的地方。
这是我尝试使用的一种方法:
private readonly MainWindow _mainWindow = new MainWindow();
private void BtnShowNotes_OnClick(object sender, RoutedEventArgs e)
{
_mainWindow.FrContent.Content = new Page_Notes();
}
问题在于,尽管它调用了InitializeComponent()
函数,但它不显示XAML中的任何元素。为什么它不像MainWindow
中的函数那样起作用?
答案 0 :(得分:2)
您正在创建MainWindow
的新实例。您应该访问现有窗口的Frame
。您可以使用Application.Current.Windows
属性对此内容进行引用:
private void BtnShowNotes_OnClick(object sender, RoutedEventArgs e)
{
MainWindow mw = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
if (mw != null)
mw.FrContent.Content = new Page_Notes();
}