我正在尝试编写一个自定义 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 位位图以及图标,但它们都产生相同的结果。我做错了什么吗?
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按钮也是由这个值控制的。
X、Y、宽度和高度采用“安装程序单位”,而不是像素。将安装程序单位转换为像素取决于视觉主题、字体大小和 DPI 设置。最好的办法是让它在默认设置下看起来不错。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)