Как остановить анимацию WPF?

Как остановить анимацию, чтобы она не производилаCompleted мероприятие. Вот простой пример

<Window x:Class="WpfApplication5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="248" Width="318">
    <Grid>
        <Border Width="20" Height="20" Background="Red" MouseEnter="Border_MouseEnter" MouseLeave="Border_MouseLeave" x:Name="border" />
    </Grid>
</Window>

И код поддержки:

private void Border_MouseEnter(object sender, MouseEventArgs e)
{
    var a = new DoubleAnimation { To = 0, Duration = TimeSpan.FromMilliseconds(4000) };
    a.Completed += (obj, args) => MessageBox.Show("Boom!");
    border.BeginAnimation(Border.OpacityProperty, a);
}

private void Border_MouseLeave(object sender, MouseEventArgs e)
{
    border.BeginAnimation(Border.OpacityProperty, null);
    border.Opacity = 1;
}

Если я переместлю мышь до того, как прямоугольник станет белым, через некоторое время всплывет всплывающее окно. Как это предотвратить? Давайте предположим, чтоBorder_MouseLeave а такжеBorder_MouseEnter методы не знают друг о друге (они не могут передавать переменные экземпляра анимации друг другу).

Ответы на вопрос(2)

Ваш ответ на вопрос