2

我正在使用Windows Installer XML CommonUi Extension中的 Windows 服务对话框。

我在标题文本后面有一个深色横幅位图,所以我想更改标题字体的颜色。我尝试将其添加到我的 .wxs 中:

  <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="8" Blue="255" Red="255" Green="255" />

这在没有扩展名的情况下工作,但现在我使用扩展名我收到此错误:

主键“WixUI_Font_Title”在表“TextStyle”中重复。请删除其中一个条目或重命名主键的一部分以避免冲突。

如何更改字体?


编辑:我通过向 UI 部分添加 TextStyle 以一种 hacky 的方式解决了这个问题,如下所示:

  <TextStyle Id="My_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" Blue="255" Red="255" Green="255" />

然后将自定义字符串添加到.wxl文件中,该文件使用相同的文本覆盖原件,但也使用字体设置。

  <String Id="ProgressDlgTitleInstalling">{\My_Font_Title}Installing [ProductName]</String>
  <String Id="ProgressDlgTitleChanging">{\My_Font_Title}Changing [ProductName]</String>
  <String Id="ProgressDlgTitleRepairing">{\My_Font_Title}Repairing [ProductName]</String>
  <String Id="ProgressDlgTitleRemoving">{\My_Font_Title}Removing [ProductName]</String>

我正在为这个问题添加一个赏金,希望找到正确的方法来解决这个问题。

4

1 回答 1

2

There's no way to override a TextStyle element at the moment. Either you keep your current way of doing things, or you execute an SQL query on the MSI post build to update the WixUI_Font_Title TextStyle entry.

There's a help page on executing SQL on an MSI under Execute SQL Statements in the MSI doc (doc\msi.chm if you have WiX installed). You could use the MSI API or DTF instead of a script, of course.

Your update statement would look something like:

UPDATE `TextStyle` SET `Color` = 16777215 WHERE `TextStyle` = 'WixUI_Font_Title'

The documentation has this to say on the Color column:

The value put in this column should be computed using the following formula: 65536 * blue + 256 * green + red, where red, green, and blue are each in the range of 0-255.

于 2013-08-23T19:15:47.957 回答