布尔动画锁定属性

时间:2009-06-02 22:37:06

标签: wpf silverlight xaml

如果我有一个设置属性的BooleanAnimation,该属性将被锁定,并且不能通过任何其他方式更改。

示例:

<EventTrigger
    SourceName="myButton"
    RoutedEvent="Button.Click">
    <EventTrigger.Actions>
        <BeginStoryboard>
            <Storyboard>
                <BooleanAnimationUsingKeyFrames
                    Storyboard.TargetName="myCheckBox"
                    Storyboard.TargetProperty="IsChecked"
                    FillBehavior="HoldEnd">
                    <DiscreteBooleanKeyFrame
                        KeyTime="00:00:00"
                        Value="False" />
                </BooleanAnimationUsingKeyFrames>
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger.Actions>
</EventTrigger>

在此示例中,如果单击该按钮,则复选框设置为false,但是,如果用户再次尝试检查复选框,则复选框将无响应。无法通过代码设置IsChecked属性(单击按钮后)。

我可以创建另一个动画来更新CheckBox,但这不是我需要的行为。

我也尝试过FillBehavior =“Stop”,但这只会导致动画无法正常工作。

2 个答案:

答案 0 :(得分:6)

CheckBox仍在设置中,但动画仍在运行,这就是为什么它似乎取消选中它。可以通过以下几种方法修复此问题,以便动画不再控制复选框上的属性。 MSDN Animation概述讨论动画结束时会发生什么。并且how to set a Property after animating it with a Storyboard会介绍其他一些选项。

答案 1 :(得分:1)

替换

  

FillBehavior = “HoldEnd”

  

持续时间=“00:00:01”FillBehavior =“停止”

它会起作用: - )