2011-12-02 164 views
5

我正在嘗試編寫一個自定義的WiX對話框,該對話框作爲其工作流程的一部分,在響應某些條件時顯示錯誤圖像。但是,WiX似乎忽略了我的尺寸,並且顯示爲合適。這裏是我的代碼: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> 

我已經包括下面的對話框中的一個片段,在後臺的原始圖像(16×16 .ICO)。正如您所看到的,圖像已經向上縮放,並且圖像周圍沒有透明度。我試過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"),我會得到一個刻度圖像和一些文字來表示一切都很好,否則我會看到一個警告圖標和一些文字來警告用戶。當然,Next按鈕也由這個值控制。

+0

問一個單獨的問題..很難知道..你動態地改變圖像?我的意思是圖像會按照條件出現? –

+0

是的;所以有一個TestResult_Success控件,如果LOGON_VALID = 1,則顯示一個綠色標記,如果LOGON_VALID = 0,則顯示綠色標記。圖像尺寸相同,位置相同。 –

+0

你可以請分享一些代碼動態更新圖像? –

回答

5

X,Y,寬度和高度位於「安裝程序單位」中,而不是像素。將安裝程序單位轉換爲像素取決於視覺主題,字體大小和DPI設置。你最好的選擇是使它在默認設置上看起來不錯。

+2

這是一個恥辱WiX文件沒有說清楚。最後,我嘗試了一系列值,並發現對於我的16x16圖像,將寬度和高度設置爲12,並將IconSize設置爲16,產生了預期的結果(默認視覺主題/字體大小/ DPI設置,如你注意的)。 –

+0

@DavidKeaveny我還不得不放大我的圖像1.3333333倍,我在我的WiX用戶界面設置。這是一個非常可笑的步驟(http://stackoverflow.com/questions/28997742/how-do-you-optimize-a-jpeg-image-for-msi-installers/29012944#29012944)非常感謝你張貼回來什麼爲你工作,大衛。它對我的幫助非常大。 – Alexandru