开发向导 UI - WPF
Posted
技术标签:
【中文标题】开发向导 UI - WPF【英文标题】:Developing wizard UI - WPF 【发布时间】:2011-01-09 19:15:01 【问题描述】:全部在 WPF 中:
开发向导应用程序时,用户必须先回答一些简单的问题,然后才能进入主应用程序。然后,主应用程序会预填充从向导获得的信息。
我从一个窗口开始,然后我计划向其中添加用户控件。主窗口的第一行是用户控件,然后是 Next 和 Previous 按钮来控制第二行控件之间的移动。这样我就可以轻松控制在屏幕之间切换的逻辑,例如:
WizardControl1.IsVisible = false;
WizardControl2.IsVisible = true;
但由于某种原因,用户控件没有 IsVisible 的设置器。万岁。
然后我想我会为向导的每个部分使用单独的窗口。这种方法的问题在于,现在当在两者之间切换时,窗口会在随机位置打开,并且通过使用 next 步进通过向导,下一个窗口会随机弹出,这确实令人分心和令人沮丧。
那么我怎样才能正确地开发一个向导呢?我不明白为什么这这么难……不完全是火箭科学……在按下下一个/上一个后替换文本和控件并存储输入!
谢谢
【问题讨论】:
有一个可见性属性,而不是“IsVisible”。 【参考方案1】:检查此链接: http://www.codeproject.com/KB/WPF/InternationalizedWizard.aspx 这是 Josh Smith 关于在 WPF 中构建向导的文章,这似乎是一个不错的模式。 我发现它对我有帮助,希望你也会。
【讨论】:
“很抱歉,您尝试查看的文章已于 2021 年 1 月 22 日被删除。”【参考方案2】:codeplex 上还有一个开源的Avalon Wizard 控件。
【讨论】:
【参考方案3】:我可能会使用数据绑定和模板选择器来解决这个问题。将向导表单绑定到“WizardData”类,该类公开“WizardPage”基类列表。
WizardData 类可以公开定义表单上正确信息的属性,并为主页显示一个控件,该控件使用模板选择器根据特定向导页面的实际类型确定要显示的正确控件。
听起来确实比实际工作要多。它还为您提供代码和 UI 之间良好分离的好处(所有“工作”都由 WizardData 和 WizardPage 类完成),以及独立于 UI 测试逻辑的能力。
这也是一种非常 WPF/MVVM 解决问题的方法。
【讨论】:
您知道哪些示例可以帮助我入门吗?我不知道该怎么做你所说的“让向导表单绑定到一个“WizardData”类,它公开了一个“WizardPage”基类列表” 我看看能不能一起举个简单的例子。【参考方案4】:我知道这并不能直接解决您的问题,但我想我会提到它作为一种可能的替代方案。我使用 Actipro 的 Wizard 控件取得了不错的效果,当我需要支持时,他们反应迅速。我与他们没有任何关系;我只是喜欢不必编写管道来管理向导。
【讨论】:
【参考方案5】:-
该属性称为“可见性”。
我发现动态添加和删除控件比隐藏控件效果更好。
【讨论】:
【参考方案6】:我也在寻找向导解决方案。我需要坚持使用常用的 WPF 组件,因此我使用标准表单和选项卡控件实现了向导。
我只在运行时隐藏选项卡,以便在 IDE 中可用。在运行时只需使用 Back、Next、Finish... 来浏览选项卡项
效果不错
【讨论】:
以上是关于开发向导 UI - WPF的主要内容,如果未能解决你的问题,请参考以下文章
LR敏捷软件平台v7开发示例,功能设计模块化,UI特色明显(长文)