我在复选框的同一属性上有2个触发器,但它不能正常工作。
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="False">
<Setter TargetName="InnerText" Property="Text" Value="False" />
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource OnUnCheck}"/>
</Trigger.EnterActions>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="InnerText" Property="Text" Value="True" />
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource OnCheck}"/>
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>
当我取消选中CheckBox时,文本被设置,故事板被调用就好了。但是当我检查CheckBox时,文本设置正确,但没有调用故事板。然后我可以取消选中CheckBox,那个故事板仍然有用。
然后,如果我交换触发器顺序,那么Value="True"
是第一个,只有那个故事板才有效。在这两种情况下,文本设置得很好,它确认两个故事板都有效。它只是第二个触发器中的故事板在任何一种情况下都不会被调用。我需要使用MultiTrigger ......?
编辑:我的故事板是向后的,所以这是第一个不调用故事板的触发器,而不是第二个
答案 0 :(得分:1)
不,不管是谁支持我的问题,但我想出了一个解决方案。单独的触发器似乎不起作用,所以我编辑了我的故事板以包含文本设置,并将我的False
支票放入<Trigger.ExitActions>
,
<Trigger Property="IsChecked" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource OnCheck}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource OnUnCheck}"/>
</Trigger.ExitActions>
</Trigger>
这还有一个好处,即加载控件后不会执行False
部分。