Wix CheckBox默认状态

时间:2012-10-24 09:23:58

标签: wix windows-installer

下面的对话框显示一个复选框,在选中时启用下一个按钮。问题是当表单首次出现时,我无法将其初始状态设置为未选中状态。我已经尝试设置CheckBoxValue = 1,但这不起作用。

    <Dialog Id="DatabaseDialog" X="50" Y="50" Width="373" Height="287" Title="[ProductName]">
                <Control Id="EnableCheckBox" Property="DatabaseBackedUp" Type="CheckBox" X="20" Y="150" Width="290" Height="30" 
                         Text="Has the database been backed up?" CheckBoxValue="0" />
                <Control Id="NextButton" Type="PushButton" X="300" Y="261" Width="66" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}&amp;Next &gt;" TabSkip="no" Default="yes">
                    <Publish Event="EndDialog" Value="Return">DatabaseDialog_NextArgs=""</Publish>
                    <Publish Event="NewDialog" Value="[DatabaseDialog_NextArgs]">DatabaseDialog_NextArgs&lt;&gt;""</Publish>
                 <Condition Action="disable"><![CDATA[DatabaseBackedUp<> "1"]]></Condition>
                 <Condition Action="enable"><![CDATA[DatabaseBackedUp= "1"]></Condition>
                </Control>
</Dialog>

2 个答案:

答案 0 :(得分:11)

这就是我这样做的方式,它对我有用

财产:

  <Property Id="CHECKBOX" Secure="yes"></Property>

复选框:

<Control Id="CheckBoxId" Type="CheckBox"  Text="Use the proxy server for your LAN" Property="CHECKBOX" Width="180" Height="15" X="25" Y="103" CheckBoxValue="1"/>

我相信这是有效的,因为你首先将链接到复选框的属性设置为空,因此它保持为空,如果单击它,则属性值等于CheckBoxValue设置的值。 (无论如何,这是我的逻辑:) :)希望这有帮助

答案 1 :(得分:1)

您已定义了一个控件:

<Control Id="EnableCheckBox"
         Type="CheckBox"
         Property="DatabaseBackedUp" 
         X="20" Y="150" Width="290" Height="30" 
         Text="Has the database been backed up?" 
         CheckBoxValue="0" />

您没有提及您是否在解决方案的其他位置定义了DatabaseBackedUp属性,但我认为您已经定义了类似的内容:

<Property Id="DatabaseBackedUp" Value="0"></Property>

您可能已尝试Value的其他值。但是,我相信复选框会将任何值的存在解释为含义&#34;我应该检查&#34;。

但是,如果您未设置Value属性,则会收到警告:"Property 'CHECKBOX' does not contain a Value attribute and is not marked as Admin, Secure, or Hidden. The Property element is being ignored."

设置其中一个属性会使警告消失,但会出现可能需要或可能不需要的其他行为。

解决方案只是删除属性

然后该复选框将找不到它的值,并且默认为取消选中。检查它仍然可以按预期工作(即它将创建并设置属性的值)。

我已经成功使用WiX v3.11.1。