перекрытие анимационных событий wpf - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть элемент управления canvas, высота которого увеличивается при наведении на него мышки и уменьшается при отпускании мыши.

<Canvas x:Name="infoBar" Width="720" Height="39" Background="Red">
            <Canvas.Triggers>
                <EventTrigger RoutedEvent="Canvas.MouseEnter">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation
            Storyboard.TargetName="infoBar" 
            Storyboard.TargetProperty="Height"
            From="39" To="255" Duration="0:0:0.5" 
            />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
                <EventTrigger RoutedEvent="Canvas.MouseLeave">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation
            Storyboard.TargetName="infoBar" 
            Storyboard.TargetProperty="Height"
            From="255" To="39" Duration="0:0:0.5" 
            />
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Canvas.Triggers>
            <StackPanel>
                <TextBlock/>
                <TextBlock/>
           </StackPanel> 
        </Canvas>

Это прекрасно работает.Однако, если происходят два быстрых последовательных события (отпуск мышью до завершения анимации при вводе мыши), он сходит с ума.

Могу ли я сказать ему, чтобы он отменял любые другие события, которые происходят до завершения анимации?

1 Ответ

1 голос
/ 23 сентября 2010

Используя триггеры событий, вы можете выполнять команды паузы, остановки, возобновления и т. Д. На именованных раскадровках.

Эта статья должна ответить на ваши вопросы.

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