gpt4 book ai didi

c# - WPF 简单动画导致性能问题

转载 作者:行者123 更新时间:2023-11-30 12:59:42 32 4
gpt4 key购买 nike

正如您在下面看到的,我有一个允许您在单个 Thumb 控件周围拖动的 Canvas 。将 ProgressBars IsIndeterminate 值设置为 false 时,拇指在您四处拖动时 react 非常灵敏,但一旦将其设置为 true,即使对于这种简单的情况,拇指也会滞后大量帧。当您添加更多控件时,它会变得非常明显。

设置 Timeline.DesiredFrameRateProperty 似乎没有任何区别。

我能做些什么来避免这个问题吗?

<Window x:Class="WpfApplication30.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Canvas>
<Thumb Width="50"
Height="50"
Canvas.Left="10"
Canvas.Top="10"
DragDelta="Thumb_DragDelta"/>

<ProgressBar Width="200"
Height="20"
IsIndeterminate="True" />
</Canvas>

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline), new FrameworkPropertyMetadata { DefaultValue = 1 });
}

private void Thumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
UIElement obj = sender as UIElement;
Canvas.SetLeft(obj, Canvas.GetLeft(obj) + e.HorizontalChange);
Canvas.SetTop(obj, Canvas.GetTop(obj) + e.VerticalChange);
}
}

最佳答案

我观察到动画进度条会破坏终端服务器的性能。

这只是您的机器吗?您正在远程处理并观察这种行为吗?

关于c# - WPF 简单动画导致性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184008/

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