Булева анимация блокирует свойство - PullRequest
5 голосов
/ 03 июня 2009

Если у меня есть 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>

В этом примере, если кнопка нажата, флажок установлен в ложь, однако, если пользователь пытается снова проверить флажок, флажок не отвечает. Свойство IsChecked также нельзя установить с помощью кода (после нажатия кнопки).

Я могу создать другую анимацию, которая обновит CheckBox, но это не то поведение, которое мне требуется.

Я также пытался использовать FillBehavior = "Stop", но это просто приводит к тому, что анимация тоже не работает.

Ответы [ 2 ]

6 голосов
/ 03 июня 2009

CheckBox все еще устанавливается, но анимация все еще работает, поэтому она, кажется, снимает ее. Есть несколько способов, которыми это можно исправить, чтобы анимация больше не управляла свойством флажка. В обзоре MSDN Animation говорится о том, что происходит, когда заканчивается анимация. И как установить свойство после анимации его с раскадровкой выходит за рамки некоторых других параметров.

1 голос
/ 03 октября 2009

заменить

FillBehavior = "HoldEnd"

с

Duration = "00:00:01" FillBehavior = "Stop"

и это будет работать: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...