将文本颜色更改为 Wix 对话框

Efr*_* S. 2 installation customization windows-installer wix

我是使用 Wix 创建安装程序的新手,我设法完成了所有工作,并且安装程序按预期工作。我遇到的唯一问题是我为 WixUI_Minimal 对话框使用了背景和横幅图像,这些是深色图像,因此由于文本颜色为黑色,现在显示了一些文本。

我想知道如何根据需要将每个对话框上的文本颜色更改为另一种颜色。在许可协议的第一个屏幕中,我希望它是橙色的,在顶部横幅的安装过程中,我希望它是白色的。我怎样才能做到这一点?

Ste*_*mul 6

WiX 默认 GUI 集:默认 WiX MSI GUI 包含在 DLL 中WixUIExtension.dll。通常,您只需在 WiX 项目中添加对此文件的引用并指定默认的 WiX GUI 集,例如<UIRef Id="WixUI_Mondo" /><UIRef Id="WixUI_Minimal" />- 就足够了。该WixUIExtension.dll文件可以在%ProgramFiles(X86)%下的主 WiX 安装目录中找到。

1) 内置 WiX 对话框自定义:有一些方法可以稍微更改这些 WiX 设置对话框。此处描述了整体方法:自定义内置 WixUI 对话框集。我认为它应该足以满足您的目的。可能的调整:1) 指定特定于产品的许可协议文件。2) 指定特定于产品的设置 UI 位图。3) 向 ExitDlg 添加可选复选框和可选文本。4) 自定义显示在内置对话框中的文本。5) 更改内置对话框集的 UI 顺序。6) 将自定义对话框插入到内置对话框集中。

2) 更改默认对话框 - 高级对话框:除了通过上述方法稍微自定义对话框之外,您有时还需要进行大规模更改。然后您需要将对话框源文件复制到您的项目文件夹中,然后根据需要对它们进行排列。这有点涉及,但不是火箭科学。您只需将 WiX 对话框源文件复制到您的项目文件夹。我不认为这对你的目的来说是必要的。我将尝试挖掘一个描述该过程的链接。

3) 外部 GUI:只是为了记录,提及您可以通过MsiSetExternalUI 函数有效地用您自己的 GUI 替换内置 MSI GUI 的事实。WiX 引导程序使用它来允许用户实现他们自己的设置 GUI。


建议的方法:为了您的目的,我会向您的项目添加一个本地化文件(除非您已经有了):Right Click WiX Project=>Add=>New Item...=> 确保WiX 3在左窗格中选择了 =>Double click "Localization File"。在 WiX 本地化文件中,覆盖要覆盖的字符串。这是WelcomeEulaDlg's "Title"在您的新 WiX 本地化文件 (*.wxl) 中指定的字符串:

<String Id="WelcomeEulaDlgTitle">{\Test}This is my custom string3!</String>
Run Code Online (Sandbox Code Playgroud)

在您的项目文件中:

<UI>
  <UIRef Id="WixUI_Minimal" />
  <TextStyle Id="Test" FaceName="Arial" Blue="255" Size="12" Strike="yes" />
</UI>
Run Code Online (Sandbox Code Playgroud)

设置颜色的线索是TextStyle element. 您可以操作Red,BlueGreen属性以获得所需的颜色。可以在此处的 WiX git 存储库中找到有问题的对话框:WelcomeEulaDlgTitle。然后您引用文字样式-在这种情况下测试-您的本地化字符串,用这个有趣的符号:{\Test}。请参阅上面的字符串。根据需要更新和添加TextStyle标识符。这是编译后的实际对话框:

自定义 WiX 对话框标题

为方便起见


写完上面的发现这个,在没有截图的更紧凑的形式中它本质上是一样的:Customizing text in the standard Wix dialogs