开发向导UI – WPF

全部在WPF中:

开发向导应用程序后,用户必须先回答一些简单的问题才能进入主应用程序。 然后主应用程序预先填充从向导获得的信息。

我从一个Window开始,然后我计划添加用户控件。 主窗口将在第一行中具有用户控件,然后使用“下一个”和“上一个”按钮来控制在第二行中的控件之间移动。 这样我就可以轻松控制屏幕之间切换的逻辑,如:

WizardControl1.IsVisible = false; WizardControl2.IsVisible = true; 

但由于某种原因,用户控件没有IsVisible的setter。 欢呼。

所以我想我只会在向导的每个部分使用单独的窗口。 这种方法的问题在于,现在当踩到它们之间时,窗口以随机位置打开,并且通过向下通过向导进行操作,下一个窗口随机弹出,这实在令人分心和令人沮丧。

那么如何正确开发向导呢? 我不明白为什么这么难……不完全是火箭科学……在按下下一个/上一个之后替换文本和控件并存储输入!

谢谢

我可能会使用数据绑定和模板选择器来解决这个问题。 让向导表单绑定到“WizardData”类,该类公开“WizardPage”基类列表。

WizardData类可以公开在窗体上定义正确信息的属性,并显示主页面的控件,该控件使用模板选择器根据特定向导页面的实际类型确定要显示的正确控件。

听起来真的比工作更多。 它还为您提供了代码和UI之间良好分离的好处(所有“工作”由WizardData和WizardPage类完成),以及独立于UI测试逻辑的能力。

它也是一种非常接近WPF / MVVM的方法。

查看此链接: http : //www.codeproject.com/KB/WPF/InternationalizedWizard.aspx这是关于在Josh Smith的WPF中构建向导的文章,它看起来很漂亮。 我发现它对我很有帮助,希望你也能。

Codeplex上还有一个开源的Avalon Wizard控件。

我知道这并没有直接解决你的问题,但我想我会提到它作为一种可能的选择。 我已经使用了Actipro的Wizard控件,效果非常好,当我需要支持时,他们的响应速度非常快。 我不以任何方式与他们有任何关系; 我只是不喜欢编写管道来管理向导。

  1. 该物业被称为“可见性”。
  2. 我发现当我动态添加和删除控件而不是隐藏控件时,我做得更好。

我也在寻找精灵解决方案。 我需要坚持使用库存WPF组件,因此我使用标准表单和选项卡控件实现了向导。

我只在运行时隐藏选项卡,以便在IDE中可用。 在运行时,只需使用Back,Next,Finish …即可浏览选项卡项

效果很好