从“用户控制”页面返回主窗口

时间:2014-08-13 12:40:32

标签: wpf

任何人都可以共享代码,让我回到主窗口而无需打开新窗口吗?

您可以使用此代码在页面之间导航:

page1 page = new page1();
this.content = page;

但是,您无法使用以下代码导航回主窗口:

MainWindow home = new MainWindow();
this.content = home;

有关如何在不打开新窗口的情况下返回主窗口的任何建议吗?

1 个答案:

答案 0 :(得分:0)

步骤1-通过构造函数使Page类具有对Mainwindow的引用

    public partial class Page1 : Page
    {    
    private MainWindow mainWindow;

    public Page1(MainWindow mainWindow)
    {
        InitializeComponent();
        this.startWindow = startWindow; 

        //SET Height and width to match the content of the page if it differs from 
        //mainwindow
        Application.Current.MainWindow.Height = 450;
        Application.Current.MainWindow.Width = 450;   
    } 

第2步-在MainWindow中,当您要将内容更改为page1时,请创建一种更改方法

public void ChangeContentToPage1Action(){
    Page1 page = new Page1(this);
    this.content = page;
 }

第3步-在MainWindow中创建一个属性,该属性可以记住显示的启动主窗口内容。 AND在MainWindow中创建一个方法以返回默认内容

   public partial class MainWindow : Window
   {
    private object content;

    public MainWindow()
    {
        InitializeComponent();
        content = Content;
    }

 public void GoBackToStartPage()
        {
            Content = cont;
            //Sets the height and width of the application back to default if it differs from the page calling this method
            Application.Current.MainWindow.Height = 200;
            Application.Current.MainWindow.Width = 300;
        }

第4步-从Page1类中,您现在可以通过mainWindow属性调用GoBackToStartPage(),并将内容更改回默认值

mainWindow.GoBackToStartPage();

这对我有帮助。

我希望有人可以使用它