2

我已经构建了我的第一个 wpf 应用程序,没什么特别的,但我想通过添加一个设置让它看起来很酷,我在互联网上研究了一些免费的实用程序来做到这一点,但是由于它是一个 wpf 应用程序,我等待设置去沿着这些思路...知道如何创建自定义 wpf 设置向导吗?

4

4 回答 4

6

在构建 WPF 设置时,您需要解决 .Net 引导问题 - 如果客户端没有 .Net,您的设置将无法工作。

一旦你解决了这个问题,你的设置将需要做几件事:

  • 请求管理员提升以访问某些文件和注册表位置
  • 在 %ProgramFiles%\ 中部署所有必要的文件
  • 在 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall 中创建正确的条目(如果您的应用程序是为 x86 显式编译的,则需要在 64 位机器上的 Wow6432Node 中进行)
  • 在所有程序中创建一个快捷方式\
  • 根据您的应用程序提供的功能执行其他操作,例如 COM 注册、文件关联等

其中大部分由 Windows Installer (MSI) 免费提供。你真的应该使用像WiX这样的东西来构建常规安装程序,即使它不会像 WPF 那样时髦。

如果您真的想要花哨,您实际上可以构建由 MSI 引擎驱动的自定义 WPF UI,但这样做的开销可能不值得。

更新:如果您仍然决定构建 WPF UI 设置,这里有几个链接可以提供帮助:

于 2009-09-09T18:28:56.790 回答
3

任何一个:

Visual Studio 中的一个部署项目

点击一次

部署项目的时间最长。微软似乎在为 .net wix 提供最多的 clickonce 让您对 msi 拥有最大的控制权

于 2009-09-09T18:22:00.013 回答
1

我个人将 WiX 3.0 ( http://wix.sourceforge.net/ ) 用于我所有的 WPF 或其他基于 .NET 的应用程序。

于 2009-09-09T18:24:16.433 回答
0

我从未尝试过,但我知道在 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) // 可以向前执行

单击按钮时更改控件的选定索引。

于 2009-09-09T18:22:40.480 回答