【问题标题】:WPF animation sometimes doesn't runWPF 动画有时不运行
【发布时间】:2010-10-22 21:46:16
【问题描述】:

我有一些非常简单的代码,试图将自定义进度条滑过。这是 XAML:

<!-- 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,并且有时会显示动画。有什么想法会阻止动画每次都发生吗?

更新 事实证明,动画将始终最终运行。如果动画没有运行,我通常会退出应用程序,但我现在注意到,如果我不理会它,动画最终会开始。所以真的有两种模式:

  1. 动画开始并按预期立即运行
  2. 动画的开始延迟了一些时间。我看到它延迟了几秒钟到大约 1 分钟!

【问题讨论】:

    标签: c# wpf xaml animation


    【解决方案1】:

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

    【讨论】:

    • 我似乎没有任何效果。我还使用标准的 WPF 进度条重现了这一点,以确保不是我的自定义控件导致了问题。
    猜你喜欢
    • 2021-11-19
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多