首页 > 解决方案 > 如何将图像背景添加到自定义 MSI 对话框?

问题描述

我的wxs文件中有一个自定义 MSI 对话框:

<Dialog Id="OpDialog" Width="300" Height="250" Title="[ProductName]: Operations">
    ...
</Dialog>

如何将其背景设置为某个图像文件(bmp/png/...)?

标签: wixwixsharp

解决方案


快速链接:从 WiX 自己的教程中热链接(直接链接)单个页面(也检查其他页面): https ://www.firegiant.com/wix/tutorial/user-interface-revisited/tuning-up/

示例 WiX 标记下载:SampleCustomUI

不确定这一切在高 DPI 屏幕上的表现如何。


通用技巧:WiX 工具包dark.exe工具可以反编译 MSI 文件 (dark.exe -x Output File.msi)。您可以使用反编译的文件来找出记录不充分的语法。我反编译了一个 MSI 并将它与我链接到的示例结合起来,你可以尝试这样的事情(这没有显示如何将对话框插入到序列中,我不确定所有构造都很好,但它可以编译):

<!--<Binary Id="bannerbmp" SourceFile="Banner.bmp" />-->
<Binary Id="imagebmp" SourceFile="Image.bmp" />

<!--<Property Id="BannerBitmap">bannerbmp</Property>-->
<Property Id="ImageBitmap">imagebmp</Property>

<Dialog Id="ServerDlg" Width="370" Height="270" Title="Dialog Title">
  <!--<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="[BannerBitmap]" />-->
  <Control Id="Image" Type="Bitmap" X="0" Y="0" Width="374" Height="234" TabSkip="yes" Disabled="yes" Text="[ImageBitmap]" />

  <..>

</Dialog>
  • 请注意,上面禁用了BannerBitmap(即顶部穿过对话框的那个),整个对话框现在被主图像ImageBitmap覆盖。
  • 如果这是您想要使用的,您可以轻松地打开横幅。只需注释掉大图像并启用顶部横幅。
  • 上面没有显示正确的本地化 - 如果您想使用本地化文件进行翻译。
  • 上面是简化的,我取出了WixVariable条目,如果你想看,看修订历史。

文档:关于 GUI 定制的 WiX 文档: https ://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations.html

教程 https ://www.firegiant.com/wix/tutorial/user-interface-revisited/a-single-dialog/


更多详细信息:添加指向更大的 WiX GUI 描述的链接。使用 WiX 和 MSI GUI 显示各种技巧。

样品:也许是一些实用的样品?


推荐阅读