Я пытаюсь написать собственное диалоговое окно 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](https://i.stack.imgur.com/V1M7o.png)
ОБНОВЛЕНИЕ:
Если вам интересно, как работают динамические изображения,вот соответствующий раздел:
<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"
), я получаю изображение галочки и некоторый текст, чтобы сказать, что все хорошо, иначе я получаю значок предупреждения и некоторый текст, чтобы предупредить пользователя.Конечно, кнопка «Далее» также управляется этим значением.