WPF动画有时不运行

问题描述:

我有一些非常简单的代码,试图将自定义进度条滑过。这里是XAML:WPF动画有时不运行

<!-- Progress display --> 
<uControl:ProgressDisplayPie 
    x:Name="soakProgressDisp" 
    Canvas.Left="357" Canvas.Top="29" 
    ProgressValue="0" Height="198" /> 

在响应按钮点击,进度条滑过:

private void sauceApplied_Click(object sender, RoutedEventArgs e) 
{       
    // Beep beep 
    soundPlayer.SoundLocation = "Resources/Audio/1-first.wav"; 
    soundPlayer.Play(); 

    // Move the progress display 
    DoubleAnimation moveAnimation = new DoubleAnimation(); 
    moveAnimation.To = 460; 
    moveAnimation.Duration = TimeSpan.FromMilliseconds(1000); 
    moveAnimation.AccelerationRatio = 1.0; 
    soakProgressDisp.BeginAnimation(Canvas.LeftProperty, moveAnimation);     
} 

这个屡试不爽我的电脑上。但是,在小型平板电脑上运行时,动画有时不会发生。进度条保持不变。我检查是否有任何异常被抛出,但一切都干净。

面板电脑有最新的.NET,有时它也是动画。任何想法会阻止每次发生动画?

UPDATE 事实证明,动画将永远最终运行。我通常刚刚退出应用程序,如果动画没有运行,但我现在注意到,如果我离开它,动画将最终开始。因此,有真正两种模式:

  1. 动画开始,并如预期
  2. 动画的开始是由一定量的时间延迟立即运行。我已经看到它延迟了几秒钟,直到约1分钟!

尝试删除任何透明度或效果,看看问题是否消失。我遇到了同样的问题,它是越野车AllowTransparency ...

+0

我似乎没有任何影响。我也用一个标准的WPF进度条重现了这一点,以确保它不是我的自定义控件导致的问题。 – BabaBooey 2010-10-22 18:06:38