2

在我的设置项目中,我想自定义 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 属性互斥。

bmp4 像素宽(所有像素都是黑色),但进度条仍然是默认的窗口颜色(Win7 with Aero:绿色)。我既不使用 ImageResource 也不使用 SourceX 和 SourceY 属性(如文档所要求的那样)。

谁能帮我这个?我错过了什么,还是我误解了什么?

4

1 回答 1

2

thmutil 很可能无法加载您的.\test.bmp. 很可能文件丢失了。如果文件无法加载,它会静默跳过失败并返回到系统进度条。

为了确保.\test.bmp可以找到,我首先建议从.\路径中删除,然后确保文件作为 a 包含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>
于 2013-04-19T17:58:57.607 回答