问题描述
WPF中,窗体跳转怎么个跳转法比较好?或者怎么设计比较好?打个比方,一般winform的,先隐藏上一层的窗体,然后new出下一层要显示的窗体,然后show出来。WPF当然也可以这样。不过这样感觉不是很流畅。在WPF中还有两种方法,一种是跳转page页,一种是将窗体当成用户控件,然后add到一个模板窗口。流畅程度觉得肯定是将窗体当成用户控件,然后add到一个模板窗口的好。然后下面说一下我的需求和我的设计以及遇到的疑惑:需求:有很多窗体需要跳转,然后这些窗体又有很多一样的地方。设计:首先我将一样的地方做为一个模板窗体。该窗体包括:将一个grid分为3行。第一行是标题,第二行是add用户控件的地方,最后一行是“上一步”和“下一步”的按钮。然后在初始化模板窗体的时候,初始化List<UIElement>,这个LIst里面放的是用户控件add的顺序。然后设计算法在点击上一步和下一步的时候,系统知道要加载哪个用户控件进行显示。问题:现在的问题是,比如窗体a要跳转到窗体b。可是它的跳转并不是通过点击下一步进行的。此时“下一步”按钮应该隐藏,然后通过点击窗体a中的用户控件中里面的四个按钮,通过点击这四个按钮中的其中一个进行跳转。这样的话我就不知道怎么做了。模板窗体中的grid属于私有控件,而四个跳转按钮是属于用户控件中的控件,并无法访问到模板窗体中的grid,所以也就不能将用户控件add到grid里面。疑惑:遇到这个问题,那么是否是我跳转窗体的设计不好?或者应该怎么设计才是正确的?这是我最想问的。其次我想是解决我上面问题的方法。如果你能告诉我跳转应该怎么设计才好,第二个问题也就不用回答了。我会重新设计我的结构。
解决方案
解决方案二:
解决方案三:
脑袋都想大了,还没明白你的意思,你能截个图吗?
解决方案四:
引用2楼danding_ge的回复:
脑袋都想大了,还没明白你的意思,你能截个图吗?
解决方案五:
引用3楼yuandinxiaozhu的回复:
Quote: 引用2楼danding_ge的回复:
脑袋都想大了,还没明白你的意思,你能截个图吗?
我不太明白,但是感觉你把2中的内容使用wpf的内容控件显示,3的内容不变,当点击a图中的下一步,切换内容控件显示,同时把下一步按钮隐藏。至于点击用户控件,lz可以写一个“上抛“事件,用于在父窗口获得,完全可以显示成e图那个样子。
解决方案六:
你需要学学MVVM,再找个框架,比如Prism,你说的这些东西其实都是框架考虑的事情,用起来很简单,又专业多好。就是学习资料都是英文的,得自己读。除非公司有现成的项目,你一看看就懂了。
解决方案七:
可以先把每个框架都设计好,通过隐藏显示来控制。