2013-07-10 128 views
2

我使用的是來自Windows Installer XML CommonUi Extension的Windows服務對話框。使用WiX擴展自定義字體

我在標題文本背後有一個深色的橫幅位圖,所以我想更改標題字體的顏色。我嘗試添加這對我.wxs:

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

此作品,未經擴展,但現在我使用的擴展我得到這個錯誤:

The primary key 'WixUI_Font_Title' is duplicated in table 'TextStyle'. Please remove one of the entries or rename a part of the primary key to avoid the collision.

我怎樣才能改變字體?


編輯:

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

,然後添加自定義字符串到.wxl文件,覆蓋源文件使用相同的:我在哈克的方式通過添加文字樣式,以這樣的UI部分解決了這個文字,但也有字體設置。

<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> 

我在找到適當的方式做到這一點的,希望加入懸賞的問題。

回答

1

目前無法覆蓋TextStyle元素。要麼保持當前的處理方式,要麼在MSI後期構建中執行SQL查詢以更新WixUI_Font_Title TextStyle條目。

在MSI文檔(doc \ msi.chm,如果您已安裝WiX)下,在MSI下的Execute SQL Statements上有一個MSI執行SQL的幫助頁面。當然,您可以使用MSI API或DTF代替腳本。

你的更新語句應該是這樣的:

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

documentation中有這樣一段對Color柱說:

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.

+0

謝謝你,是一個非常詳細的解答。爲了在沒有安裝WiX的情況下閱讀任何人的益處,幫助文件中的頁面也可在此處在線獲取:http://msdn.microsoft.com/en-us/library/windows/desktop/aa368568(v=vs.85 )的.aspx –

相關問題