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

时间:2018-10-04 20:48:41

标签: wix windows-installer installer customization

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

我想知道如何根据需要将每个对话框中的文本颜色更改为另一种颜色。在第一个屏幕中,许可协议在哪里,我希望它是橙色,在安装过程中,顶部横幅中,我希望它是白色。我该如何实现?

2 个答案:

答案 0 :(得分:1)

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

1)内置WiX对话框自定义 :有一些方法可以略微更改这些WiX设置对话框。总体方法如下:Customizing Built-in WixUI Dialog Sets。我认为这足以满足您的目的。可能的调整:1)指定产品特定的许可协议文件。 2)指定特定于产品的设置UI位图。 3)在ExitDlg中添加一个可选复选框和可选文本。 4)自定义内置对话框中显示的文本。 5)更改内置对话框集的UI顺序。 6)将自定义对话框插入内置对话框集。

2)更改默认对话框-高级对话框 :除了通过上述方法对对话框进行一些自定义外,有时还需要进行大规模更改。然后,您需要将对话框源文件复制到您的项目文件夹中,然后根据需要对其进行置换。这多少有些涉及,但火箭科学并不涉及。 You simply copy the WiX dialog source files to your project folder。我认为这对于您的目的不是必需的。我将尝试挖掘一个描述该过程的链接。

3)外部GUI :出于记录目的,提到了您可以通过以下方式有效地使用自己的内置MSI GUI替换内置的MSI GUI: MsiSetExternalUI function。 WiX引导程序使用此功能允许用户实施自己的设置GUI。


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

<String Id="WelcomeEulaDlgTitle">{\Test}This is my custom string3!</String>

在您的项目文件中:

<UI>
  <UIRef Id="WixUI_Minimal" />
  <TextStyle Id="Test" FaceName="Arial" Blue="255" Size="12" Strike="yes" />
</UI>

设置颜色的线索是 TextStyle element 。您可以操纵RedBlueGreen属性来获得所需的颜色。可以在以下网址的WiX git存储库中找到有关对话框:WelcomeEulaDlgTitle。然后,使用以下有趣的符号在本地化的字符串中引用TextStyle(在本例中为Test): {\Test} 。参见上面的字符串。根据需要更新并添加TextStyle标识符。这是编译后的实际对话框:

Customized WiX Dialog Title

为方便起见


在编写完上面的内容后发现了这一点,它在没有屏幕截图的情况下,以更紧凑的形式基本相同:Customizing text in the standard Wix dialogs

答案 1 :(得分:0)

谢谢您的回答。我可以通过进入Wix SDK的源代码并检查要定制的元素的ID来进行管理。 在本地化文件(.wxl)和我引用的Product.wix中自定义了字符串。