gpt4 book ai didi

c# - wpf 中从右到左的文本选取框,其中文本 block 的宽度大于窗口而不闪烁

转载 作者:太空宇宙 更新时间:2023-11-03 15:59:53 25 4
gpt4 key购买 nike

我正在使用以下动画代码(从右到左选取框):-

    private void RightToLeftMarquee(TextBlock tb)
{
doubleAnimation = new DoubleAnimation();
doubleAnimation.From = -tb.Width;
doubleAnimation.To = TickerCanvas.Width;
doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
doubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(100));
Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("(Canvas.Right)"));
sb.Children.Add(doubleAnimation);
sb.Begin(tb,true);
}

当文本 block 的宽度小于 Canvas 时,此代码可以很好地移动文本 block ,但当文本 block 的宽度大于 Canvas 宽度时,选取框会闪烁。

最佳答案

您看到的闪烁可能是由于 ClearType 子像素定位造成的。您有几个选项,但应用它们后动画看起来不会那么流畅:

  • TextOptions.TextFormattingMode="Display"

    这将启用较新的 WPF 4.0 ClearType 算法,这将使文本看起来更清晰。

  • UseLayoutRounding="True"

    确保 WPF 将所有内容与设备像素对齐(不再有模糊的边框、图像等)

总是在任何应用程序的根元素(即所有 Window)中使用这两种设置,因为它通常会改善应用程序的外观。

关于c# - wpf 中从右到左的文本选取框,其中文本 block 的宽度大于窗口而不闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21900010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com