根据属性值显示不同的图像

时间:2016-03-31 20:50:51

标签: wix burn

我想做以下事情:

<Image X="0" Y="0" Width="20" Height="20" ImageFile="[Status].bmp" />

其中Status是变量。目前这不起作用,因为ImageFile属性的内容似乎没有扩展。

我实施了自定义bafunctions.dll,但无法通过IBootstrapperEngine找到如何进行控制。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在WiX v4中,您可以这样做:

<ImageControl X="0" Y="0" Width="20" Height="20" ImageFile="Status1.bmp"
              VisibleCondition="Status = Status1" />
<ImageControl X="0" Y="0" Width="20" Height="20" ImageFile="Status2.bmp"
              VisibleCondition="Status = Status2" />

虽然页面不会自动刷新。您可能必须使用

ThemeShowPageEx(pTheme, pTheme->dwCurrentPageId, SW_SHOW, THEME_SHOW_PAGE_REASON_REFRESH);

在WiX v3中,没有支持的方法来执行此操作。 bafunctions.dll需要访问THEME,但WixStdBA不提供v3中的功能。我猜你理论上可以获得顶级窗口并枚举所有子控件,直到找到正确的控件来显示或隐藏,并将它们初始设置为不可见。

 <Image X="0" Y="0" Width="20" Height="20" ImageFile="Status1.bmp" Visible="no />
 <Image X="0" Y="0" Width="20" Height="20" ImageFile="Status2.bmp" Visible="no />