WPF中MainWindow与Page通信

来源:互联网 发布:校园网络规划设计 编辑:程序博客网 时间:2024/06/05 14:27

与WinForm不同,WPF抛弃了MDIwindow的概念,因为微软的工程师们相信主窗口加可以切换的Page,也就象是标签页似的结构,才更符合人们使用的习惯。刚好前一阶段需要设计一个软件界面,需要实现不同功能界面的切换功能,我用了MainWindow->Frame->Page的结构,在主窗口中添加了一个Frame,通过Frame的Content方法来显示各种不同的功能界面(Page),那么问题来了,如果Page中有一个按钮,该按钮用来调用主窗口的一个方法,该怎么办?举一个最简单的例子:Frame中有个Page是用来输入帐号密码的,输入帐号密码后点击确定,Frame显示另一个Page,实现过程如下:
1、新建一个WPF工程,UI如下
中间的方框是frame1
中间的方框是frame1
2、添加Page1
这里写图片描述
3、在Page的cs文件中添加如下代码

 MainWindow parentWindow;        public MainWindow ParentWindow        {            get { return parentWindow; }            set { parentWindow = value; }        }

4、在mainwindow中用frame1.content显示page,而不是用this.frame1.Navigate

public MainWindow(){    InitializeComponent();    Page1 page1 = new Page1();    page1.ParentWindow = this;}

5、这样,就将Page的parentwindow设定为mainwindow,从而可以用 this.parentWindow来调用父窗口,也就是装窗口(mainwindow)中的变量和方法了。

0 0
原创粉丝点击