【发布时间】:2014-07-21 22:30:02
【问题描述】:
我正在创建一个行为类似于“Windows 向导”的 WPF 应用程序,当我按下 MainWindow 中的按钮时,它应该导航到说 Page2。
对于 Page2,我从 VisualStudio 添加了一个新的 WPF 页面。
这个新页面有什么方法可以从主窗口继承一些属性,例如背景、尺寸、标题等,因为大多数的属性相同。
【问题讨论】:
-
您可以使用资源字典给窗口样式
-
我可能有一个窗口,当用户导航时,多个
UserControls 被加载/交换。这样您就可以拥有标准的前进/后退按钮,并且您可以为每个子窗口创建一个界面,该界面提供逻辑来决定前进/后退是否可用等。这样您的窗口不会改变,您只需要创建一个单个“向导”窗口 -
@Charleh 我该怎么做。我在VS2013中使用设计器创建GUI,不是所有页面上的元素都显示在设计器上重叠。
-
我会为它使用一个 MVVM 框架——但你只需要一个带有占位符区域的窗口。然后为每个“页面”创建一个
UserControl。当窗口加载时,您创建第一个UserControl的实例并将其放入窗口中的占位符中。下一个/上一个等按钮可以位于窗口上,但每个页面的内容位于UserControl内,从而更容易管理窗口之间的转换 + 确保所有“部分”都是独立的。如果您对 WPF 很认真,我会考虑查看 MVVM 框架,除非它是一个非常简单的应用程序 -
每个 UserControl 都可以实现一个
IPageableWizard接口或类似的东西,具有诸如CanMoveNext、CanMovePrev之类的属性以及诸如MoveNext/OnMoveNext、MovePrev之类的方法或事件/OnMovePrev在转换期间处理状态。窗口或某种控制器将负责加载/卸载/更改窗口,使用接口查询每个页面以确定是否允许/发生转换。这使得添加新页面变得更加容易,因为你的基本“框架”就在那里,你只需加入它