Как я могу удалить работающую анимацию из элемента WPF таким образом, чтобы его событие Completed не сработало?
Представленные решения здесь и здесь удаляют видимые эффекты анимации, но событие Completed по-прежнему срабатывает в момент завершения анимации.
Вот код, демонстрирующий мою проблему (он находится в коде окна с меткой, кнопкой и TextBox):
int _count = 0;
private void button1_Click(object sender, RoutedEventArgs e) {
myLabel.Content = "Starting animation: " + _count++;
// Cancel any already-running animations and return
// the label opacity to 1.0.
myLabel.BeginAnimation(Label.OpacityProperty, null);
myLabel.Opacity = 1.0;
// Create a new animation to fade out the label.
DoubleAnimation opacityAnim = new DoubleAnimation(1.0, 0.0, TimeSpan.FromSeconds(2), FillBehavior.Stop) {
BeginTime = TimeSpan.FromSeconds(3)
};
opacityAnim.Completed += (sndr, ev) => {
myTextbox.Text += Environment.NewLine + "Completed fired.";
};
// Start the countdown/animation.
myLabel.BeginAnimation(Label.OpacityProperty, opacityAnim);
}
Как удалить анимацию, чтобы она не вызывала событие Completed?