如何轻松更改应用程序的不同部分

时间:2011-01-29 05:03:13

标签: c# wpf application-design architecture

我目前正在尝试创建一个需要10个不同“页面”且具有不同内容和控件的应用程序,我需要在特定事件之间来回切换。

我一直在做的,只是在网格中创建所有不同的部分,并将其可见性设置为折叠,然后当我需要显示它们时,只需将可见网格切换到新网格即可。

这有几个缺点,我认为从编码的角度来看它非常差,而这几乎让我无法使用设计师。 (我不知道它有什么性能影响)

最重要的是,每次切换到新页面时,我都需要将所有组件(文本框等)重置为默认状态,因为它们不会因隐形而被重置:P

关于我的问题:我需要一种方法来绘制所有不同的页面,在它们之间提供视觉上有吸引力的过渡,并且能够使用设计师来创建它们(我不是说在某处设计它然后只是复制XAML)

我环顾四周,跑进了SketchFlow,它似乎是完美的解决方案,我可以在页面之间淡出并轻松地在流程图上映射所有内容,然后我意识到它只适用于应用程序原型而我无法实际编译它作为一个普通的应用程序...我需要继承自定义的Window类。

有什么东西允许我这样做吗?或者我如何编码以使其正常工作?

注意:这绝对需要保持在一个窗口内。每次我需要改变某些东西时,我不能冒出10多个不同的窗口。因为这种情况经常发生

2 个答案:

答案 0 :(得分:3)

拆分单个用户控件中的单独部分。这样您就可以轻松地设计每一个。然后在表单上使用代码创建并加载表示您需要显示的部分的特定用户控件的新实例,并在转换时加载新部分并卸载当前部分。这样可以让你的表单保持相对轻量级。

另一种方法是创建导航应用程序并将您的部分拆分为单独的XAML视图,并使用标准导航服务在它们之间切换。

WPF Navigation Overview
Creating Navigation Applications视频教程

答案 1 :(得分:2)

您可能希望将“页面”转换为用户控件,并使用下面链接中提到的某些转换来在控件之间切换

http://www.tanguay.info/web/index.php?pg=codeExamples&id=280

有关使用过渡的更多信息,请点击此处

http://www.japf.fr/2009/04/adding-transitions-to-a-mvvm-based-dialog/

http://www.japf.fr/2008/07/8/comment-page-1/