如何在WPF中从当前页面调用另一个页面?

时间:2018-08-09 12:38:51

标签: c# wpf user-interface

我有一个简单的系统,可以在多个页面之间进行切换。 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中的函数那样起作用?

1 个答案:

答案 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();
}