0

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

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

这有几个缺点,我假设从编码的角度来看它非常糟糕,这几乎不允许我使用设计器。(我也不知道它对性能有什么影响)

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

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

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

有什么东西可以让我这样做吗?或者我该如何编码才能正常工作?

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

4

2 回答 2

3

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

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

WPF导航概述
创建导航应用程序视频教程

于 2011-01-29T05:12:17.330 回答
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/

于 2011-01-29T05:20:23.390 回答