C#UWP动画使文本闪烁



我正在为TextBlock创建一个字幕动画。我设法通过在画布上移动文本块来完成此操作。但是问题在于,每0.5秒移动时文本正在闪烁...

这是我正在使用的示例代码:

        sb1 = new Storyboard();
        DoubleAnimationUsingKeyFrames animationKeyFrames = new DoubleAnimationUsingKeyFrames();
        var keyFrameStart = new EasingDoubleKeyFrame();
        keyFrameStart.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(0));
        keyFrameStart.Value = TextWidth;
        var keyFrameEnd = new EasingDoubleKeyFrame();
        keyFrameEnd.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(10000));
        keyFrameEnd.Value = -TextWidth;
        animationKeyFrames.KeyFrames.Add(keyFrameStart);
        animationKeyFrames.KeyFrames.Add(keyFrameEnd);
        Storyboard.SetTargetProperty(animationKeyFrames, "(Canvas.Left)");
        Storyboard.SetTarget(animationKeyFrames, textBlock1);
        sb1.RepeatBehavior = RepeatBehavior.Forever;
        sb1.Children.Add(animationKeyFrames);
        sb1.Begin();

有人知道任何属性,一些双重缓冲区或类似的东西以覆盖此问题吗?

实际上,此问题与设备性能更相关。我已经检查了您的代码,您的代码没有问题。

我在机器的不同配置上测试了您的代码。"闪烁"现象不同。

有一个可减轻此问题的解决方法。

您可以通过设置更多的持续时间来缓解此问题(例如keyFrameEnd.KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(20000));)。

最新更新