2011-12-02 6 views
5

ワークフローの一部として、特定の条件に応じてエラー画像を表示するカスタムWiXダイアログを作成しようとしています。しかし、WiXは私の次元を無視しているように見えて、フィット感があるように見える。私は、バックグラウンドで元の画像(16×16 .ICO)と、以下の表示されたダイアログのスニペットを、含めましたWiXが画像を正しくレンダリングしない

<Binary Id="WixUI_FailureImg" SourceFile="$(sys.SOURCEFILEDIR)..\Resources\Failure.ico" /> 
<Control Id="TestResult_Failure" Type="Icon" IconSize="16" X="15" Y="206" Width="16" Height="16" Text="WixUI_FailureImg"> 
    <Condition Action="hide">LOGON_VALID = "1"</Condition> 
    <Condition Action="show">LOGON_VALID = "0"</Condition> 
</Control> 

:ここに私のコードです。あなたが見ることができるように、イメージは上方に拡大されており、イメージの周りに透過性はありません。私は8ビットと24ビットのビットマップを同様のアイコンで試しましたが、それらはすべて同じ結果を生成します。私が明らかに間違っていることがありますか?

example of borked image

UPDATE:あなたはスクリーンショットから推測できるとおり

<Control Id="TestResult_Success" Type="Icon" IconSize="16" X="15" Y="210" Width="12" Height="12" Text="WixUI_SuccessImg"> 
    <Condition Action="hide">LOGON_VALID = "0"</Condition> 
    <Condition Action="show">LOGON_VALID = "1"</Condition> 
</Control> 
<Control Id="TestPrompt_Success" Type="Text" X="35" Y="210" Width="322" Height="10" Text="!(loc.SqlSelectDlgConnectionValid)"> 
    <Condition Action="hide">LOGON_VALID = "0"</Condition> 
    <Condition Action="show">LOGON_VALID = "1"</Condition> 
</Control> 
<Control Id="TestResult_Failure" Type="Icon" IconSize="16" X="15" Y="210" Width="12" Height="12" Text="WixUI_FailureImg"> 
    <Condition Action="hide">LOGON_VALID = "1"</Condition> 
    <Condition Action="show">LOGON_VALID = "0"</Condition> 
</Control> 
<Control Id="TestPrompt_Failure" Type="Text" X="35" Y="210" Width="322" Height="10" Text="!(loc.SqlSelectDlgConnectionInvalid)"> 
    <Condition Action="hide">LOGON_VALID = "1"</Condition> 
    <Condition Action="show">LOGON_VALID = "0"</Condition> 
</Control> 

ページでは、:あなたはどのように動的なイメージの作品思っていた場合には

、ここでは関係セクションですSQL接続の確立に関連しています。私は、ユーザーの入力に基づいて接続文字列を作成し、それを検証しようとするカスタムアクションを持っています。それが有効な場合(LOGON_VALID = "1")、すべてのことを言うためのチックイメージとテキストが表示されます。そうでなければ、警告アイコンとユーザーに警告するテキストが表示されます。もちろん、[次へ]ボタンもこの値で制御されます。

+0

別途質問しています。私は画像が条件ごとに表示されることを意味しますか? –

+0

はい。したがって、LOGON_VALID = 1の場合は緑色のティックを表示し、LOGON_VALID = 0の場合は非表示にするTestResult_Successコントロールがあります。画像は同じサイズで同じ場所にあります。 –

+0

画像を動的に更新するコードを教えてください。 –

答えて

5

X、Y、幅、高さはピクセルではなく「インストーラ単位」です。インストーラユニットをピクセルに変換することは、ビジュアルテーマ、フォントサイズ、およびDPI設定によって異なります。あなたの最善の策は、それがデフォルト設定でうまく見えるようにすることです。

+2

WiXのドキュメントでこれを明確にしていないのは残念です。最後に、私は値の範囲を試してみるだけで、幅と高さを12に設定し、IconSizeを16にして、16x16のイメージでは、デフォルトのビジュアルテーマ/フォントサイズ/ DPIの設定を参照してください)。 –

+0

@DavidKeaveny私は自分のWiX UIで設定した画像の1.3333333倍も拡大しなければなりませんでした。これはそんなに馬鹿げたステップでした(http://stackoverflow.com/questions/28997742/how-do-you-optimize-a-jpeg-image-for-msi-installers/29012944#29012944)ありがとうダビデはあなたのために働いていた。それは私を大いに助けました。 – Alexandru

関連する問題