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」で複製されています。エントリの 1 つを削除するか、主キーの一部の名前を変更して衝突を回避してください。

どうすればフォントを変更できますか?


編集:次のようにUIセクションにTextStyleを追加することで、これをハッキーな方法で解決しました:

  <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

TextStyle現時点では、要素をオーバーライドする方法はありません。現在のやり方を維持するか、MSI ポスト ビルドで SQL クエリを実行して WixUI_Font_Title TextStyle エントリを更新します。

Execute SQL StatementsMSI ドキュメント (WiX がインストールされている場合は doc\msi.chm) の下に、MSI で SQL を実行するためのヘルプ ページがあります。もちろん、スクリプトの代わりに MSI API または DTF を使用することもできます。

update ステートメントは次のようになります。

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

ドキュメントには、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.

于 2013-08-23T19:15:47.957 に答える