在我的安装项目中,我想自定义Progressbar并给它一个不同的颜色。我使用默认主题xml。这是我修改的进度页面:
<Page Name="Progress">
<Image X="11" Y="20" Width="485" Height="300" ImageFile="logo.png" Visible="yes"/>
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ProgressHeader)</Text>
<Text X="11" Y="121" Width="70" Height="17" FontId="3" DisablePrefix="yes">#(loc.ProgressLabel)</Text>
<Text Name="OverallProgressPackageText" X="85" Y="121" Width="-11" Height="17" FontId="3" DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text>
<Progressbar ImageFile=".\test.bmp" Name="OverallCalculatedProgressbar" X="21" Y="168" Width="-21" Height="33" />
<Button Name="ProgressCancelButton" X="-11" Y="-11" Width="85" Height="23" TabStop="yes" FontId="0">#(loc.ProgressCancelButton)</Button>
</Page>
在Progressbar标记中,我添加了ImageFile属性。 test.bmp文件与theme.xml位于同一目录中。 ImageFile帮助说明如下:
控件图像文件的相对路径。图像必须是4像素宽:左边的像素是进度条的左边,左边的中间像素是进度使用的,右边的中间像素是未使用的,右边的像素是进度条的右边。与ImageResource和SourceX以及SourceY属性互斥。
bmp 4像素宽(所有像素都是黑色),但进度条仍然是默认的窗口颜色(带有Aero的Win7:绿色)。我既不使用ImageResource也不使用SourceX和SourceY属性(如文档所要求的那样)。
任何人都可以帮我吗?我错过了什么,还是我误解了什么?
答案 0 :(得分:2)
thmutil很可能无法加载.\test.bmp
。很可能文件丢失了。如果无法加载该文件,它将以静默方式跳过该故障,并将恢复为系统进度条。
为确保找到.\test.bmp
,我建议先从.\
路径中删除,然后确保该文件包含在Payload
BootstrapperApplication
中元件。例如:
<Bundle ...>
<BootstrapperApplication SourceFile='path\to\ba.dll'>
<Payload SourceFile='path\to\custom.thm' />
<Payload SourceFile='path\to\test.bmp' />
</BoostrapperApplication>
</Bundle>
这会将文件test.bmp
添加到BootstrapperApplication有效负载列表中。如果您使用的是wixstdba,它看起来更像是:
<Bundle ...>
<BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.RtfLicense'>
<bal:WixStandardBootstrapperApplication ThemeFile='path\to\custom.thm' />
<Payload SourceFile='path\to\test.bmp' />
</BoostrapperApplication>
</Bundle>