WPF 从一个页面回到原页面,原页面的状态不变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 从一个页面回到原页面,原页面的状态不变相关的知识,希望对你有一定的参考价值。

一个MainWindow分为上下两区域,上方有两Button,下方有frame控件,向MainWindow中嵌入Page,有page1(默认首次打开)和page2,通过上方按钮触发打开哪个page。想要实现:在page1中语言选择框中选择了中文,再通过上方按钮打开page2,最后再打开page1,page1的下拉框中还是显示上次选择的中文。
目前的情况是page1的语言选择框中啥也没有,请大家帮帮忙,快纠结死了!

我的思路是 在后台定义一个变量 用来保存page1的状态 frame在切换的时候(Navigating事件)可以通过读取这个变量 来对选择框做赋值操作(比如设置selectIndex或selectItem)追问

可是这个变量的值在page1中随着语言的选择改变后,在page2中怎么获得啊,我得到的是默认值啊?继续请教

追答

页面在切换时候可以传参数的啊。一般的做法是:mainwindow后台创建一个变量,比如frame现在加载page1,page1传一个参数值给这个变量,当加载到page2时,page2可以直接获得这个变量做自己的逻辑操作。

追问

我在mainWindow后台声明了一个变量flag,通过frame的navigate(page1,flag)传参数flag,但我在page1中怎么获得参数flag?
我想实现,在page1中改变语言选项之后,调用mainWindow中的函数同时改变mainWindow中文字的字体,但是此时mainWindow一直是打开的啊,就不会再调loaded函数了,怎么办呢?
新手接着请教

追答

我真心不知道难点在哪里 = = 你mainwindow里有frame,frame里有page1,page1里有这个combobox,mainwindow不就可以直接监听这个combobox的操作了么。。。

追问

我是新手嘛!虽然我知道此时page1是在mainWindow中的frame里,但我还是不知道mainWindow怎么去监听page1中的combobox的变化啊?
还望赐教,不胜感激!

追答

我放弃回答,这种问题都懒得自己动脑筋还去问别人不用学编程了= = ,对不起,我教不了你。

参考技术A try usercontrol追问

谢谢您的建议,能详细的说一下您的思路吗?

追答

我看了一下你的问题,我感觉你主要不台清楚怎么样使用委托,我这里简单说说,比如说mainwindow, 监听page1 里面的combobox.
In Page1:
public event EventHandler ComboBoxSelectedCHanged;
In mainwindow:
private void ComboBoxSelectedCHangedHandler(object send,EventArgs e)
//do something



//下面是如何连接
In mainwindow
page1.ComboBoxSelectedCHanged+=ComboBoxSelectedCHangedHandler
至于page1 中combobox 的值 ,可以用EventArgs e 传过来,这样你mainwindow,就可以抓到了
希望帮到你

追问

非常感谢!我已经可以用委托达到我的目的了,呵呵

wpf怎么从主页面退回到登陆界面?急急急!!!

窗口跳转今天研究了好究,Window1关闭后打开Window2,

要设置一个参数:

就是上来吐槽一下,希望对其他人有帮助

参考资料:劳动成果大家分享

参考技术A 你好你是怎么处理的 参考技术B 这跟页面与页面间的跳转有神马差别么 = = 参考技术C WPF有主页?搞清楚是WPF还是Siverlight追问

已经解决,谢谢回答,是用Wpf做的系统,所以那个主页,就是登陆后的页面,与页面跳转有区别,要考虑的数据线程问题,不过还是谢谢

以上是关于WPF 从一个页面回到原页面,原页面的状态不变的主要内容,如果未能解决你的问题,请参考以下文章

wpf怎么从主页面退回到登陆界面?急急急!!!

React切换路由后保留原页面状态

前端vue开发 iOS手机切屏之后回到原app页面动画不执行了

小程序之页面跳转

数据怎么返回给原页面(PHP)?

在java web开发中在一个页面点击一个按钮,显示的内容直接再原页面上,怎么操作