我有一个MainWindow,它包含一个框架。 我的Frame使用MainWindow上的按钮在不同的xaml之间切换。 我现在遇到的问题是,我还需要从我的Frame中加载的xaml中的按钮执行此操作。 我试过以下:
private void Button_Click(object sender, RoutedEventArgs e)
{
MainWindow mw = new MainWindow();
Page myPage = new Page();
mw.editFramePage(myPage);
}
这是我的编辑editFramePage方法:
public void editFramePage(Page page)
{
myFrame.NavigationService.Navigate(page, UriKind.Relative);
}
这样可行,但它会弹出一个新的MainWindow,我希望这与我当前的MainWindow一起使用。 可以使用一些帮助!
答案 0 :(得分:0)
问题是您正在创建新的MainWindow
。您需要保留对原始MainWindow
的引用,并在其上调用editFramePage
。
WPF应用程序的默认实现框架将主窗口保存在App.MainWindow
中。要实现它,您需要使用Application.Current.MainWindow
。
所以你的功能应该是这样的:
private void Button_Click(object sender, RoutedEventArgs e)
{
MainWindow mw = (MainWindow) Application.Current.MainWindow;
Page myPage = new Page();
mw.editFramePage(myPage);
}
请注意,需要转换为MainWindow
,因为Application.MainWindow
会返回类型Window
,而不是您需要的更具体的类型。