bitmap - WiX 无法正确渲染图像

标签 bitmap wix wix3.5

我正在尝试编写一个自定义 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

更新:

如果您想知道动态图像的工作原理,请参阅相关部分:
<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按钮也是由这个值控制的。

最佳答案

X、Y、宽度和高度以“安装程序单位”为单位,而不是像素。将安装程序单位转换为像素取决于视觉主题、字体大小和 DPI 设置。最好的办法是让它在默认设置下看起来不错。

关于bitmap - WiX 无法正确渲染图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8351801/

相关文章:

x86 - WIX 将文件安装到 32 位和 64 位程序文件文件夹中

WIX 对话框更改属性文本值

Wix:将 <Upgrade> 移至 <Fragment>

wix - 如何使用 WiX 创建 .NET 事件日志源

python - 将调色板颜色的 16x16 真彩色图像转换为实际的调色板文件

c++ - 如何通过填充选项将一个矩形缩放到另一个矩形(例如将图片缩放到窗口)并保持纵横比?

c++ - 是否有任何现有的解决方案来制作可移植的有序位字段?

c# - 截图方法生成黑色图像

hyperlink - 如何指定帮助链接、支持链接和更新信息?

.net - WiX - 在设置输出中收集非项目程序集