2013-10-22 38 views
0

我想添加一个复选框到ExitDialog以在安装后启动应用程序。我这样做没有问题,但后来我遇到了与其他人相同的问题 - 复选框和单选按钮不支持透明度,所以我显示的复选框由于背景位图而具有难看的灰色边框。更改Wix ExitDialog中的背景位图

我见过几个关于如何创建我自己的退出对话框的建议,将复选框与文本标签组合在一起调整大小。我的想法是在ExitDialog中显示一个不同的,更窄的背景位图(仅此)。

在我可以看到,位图是由控制源:

<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.ExitDialogBitmap)" /> 

我的问题是如何与另一个位仅此对话框替代默认的位图?

回答

2

Control元件的与一种类型的BitmapText属性引用了一个Binary元件指向一个光栅图形图像文件的属性Id。如果您查看UIExtension的源代码(您使用的是我所假设的),则会发现!(loc.ExitDialogBitmap)解析为WixUI_Bmp_Dialog。因此,您只需创建一个Binary元素,其Id属性设置为WixUI_Bmp_Dialog。不幸的是,Id被UIExtension中的7个其他对话框使用。

幸运的是,每个位图的本地化字符串都是可覆盖的。所以,你只需要在你的本地化文件中创建一个String元素是这样的:

<String Id="ExitDialogBitmap">MyOwnExitBitmap</String> 

和相应的二进制元素:

<Binary Id="MyOwnExitBitmap" SourceFile="myOwnExit.bmp" /> 
+0

谢谢你 - 我取代了位图。但是我狭窄的位图(缩小以避免与复选框重叠)被拉伸以填充整个位图控件,因此看起来不太好用。 所以我有一个额外的问题:是否有可能更改位图控件的宽度? –

+0

由于宽度在源代码中是固定的,因此您无法将其更改为上面解决方案中的图片。但是,您可以简单地复制该对话框的源代码,并根据宽度由您指定的对象创建一个对话框。然后你必须相应地排序它。但是,如果你走这条路线,你可能会做自己的整个UI,没有扩展名... – BdN3504

+1

修正了它:-) 我做了一个正常大小的32位位图,并在右侧的透明度文本并显示复选框。 –