wix - 如何将图像背景添加到自定义 MSI 对话框?
问题描述
我的wxs
文件中有一个自定义 MSI 对话框:
<Dialog Id="OpDialog" Width="300" Height="250" Title="[ProductName]: Operations">
...
</Dialog>
如何将其背景设置为某个图像文件(bmp/png/...)?
解决方案
快速链接:从 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 显示各种技巧。
样品:也许是一些实用的样品?
推荐阅读
- python - 比较主数据框和子数据框并仅基于两列值提取新行
- python - 包括前 N 行过滤器匹配
- java - startActivity(intent) 方法调用预期错误
- r - 基于R中预先存在的变量的值将值分配给新变量的迭代方法
- sql - 如何将查询的返回结果合并为一行
- git - 为什么 git fetch origin master:master 快进本地分支?
- python - 为什么 Python 程序运行次数越多越快?
- swift - 如何在按钮上设置 IBAction 操作
- c++ - 如何将无效操作数修复为二进制表达式
- scala - 运行使用 nohup 编写在文件中的 spark 结构化流应用程序 scala 代码