我已经构建了我的第一个 wpf 应用程序,没什么特别的,但我想通过添加一个设置让它看起来很酷,我在互联网上研究了一些免费的实用程序来做到这一点,但是由于它是一个 wpf 应用程序,我等待设置去沿着这些思路...知道如何创建自定义 wpf 设置向导吗?
4 回答
在构建 WPF 设置时,您需要解决 .Net 引导问题 - 如果客户端没有 .Net,您的设置将无法工作。
一旦你解决了这个问题,你的设置将需要做几件事:
- 请求管理员提升以访问某些文件和注册表位置
- 在 %ProgramFiles%\ 中部署所有必要的文件
- 在 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall 中创建正确的条目(如果您的应用程序是为 x86 显式编译的,则需要在 64 位机器上的 Wow6432Node 中进行)
- 在所有程序中创建一个快捷方式\
- 根据您的应用程序提供的功能执行其他操作,例如 COM 注册、文件关联等
其中大部分由 Windows Installer (MSI) 免费提供。你真的应该使用像WiX这样的东西来构建常规安装程序,即使它不会像 WPF 那样时髦。
如果您真的想要花哨,您实际上可以构建由 MSI 引擎驱动的自定义 WPF UI,但这样做的开销可能不值得。
更新:如果您仍然决定构建 WPF UI 设置,这里有几个链接可以提供帮助:
我个人将 WiX 3.0 ( http://wix.sourceforge.net/ ) 用于我所有的 WPF 或其他基于 .NET 的应用程序。
我从未尝试过,但我知道在 ASP.NET 中,您可以将 WizardSteps 添加到 MultiView。
在 WPF 中,我将创建一个选项卡控件,将选项卡高度设置为零:
<TabControl x:Name="tbcWizard" Background="Transparent" BorderBrush="Transparent">
<TabItem Visibility="Hidden" Height="0">
...
使用 DockPanel 或 Grid 将下一个/上一个按钮保留在底部。下一个/上一个键将映射到 NavigationCommands.NextPage 或 PreviousPage 的 CommandBindings,这些命令的 CanExecute 状态将由选项卡控件的索引确定。
if(tbcWizard.SelectedIndex > 0) // 可以向后执行 if(tbcWizard.SelectedIndex <= tbcWizard.Items.Count) // 可以向前执行
单击按钮时更改控件的选定索引。