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>

Я включил фрагмент получившегося диалога ниже, с исходным изображением (16x16 .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 также управляется этим значением.

6
задан David Keaveny 6 December 2011 в 21:49
поделиться