使用框架内的按钮编辑框架

时间:2013-12-08 21:46:10

标签: c# wpf xaml

我有一个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一起使用。 可以使用一些帮助!

1 个答案:

答案 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,而不是您需要的更具体的类型。