gpt4 book ai didi

WPF 断断续续的动画

转载 作者:行者123 更新时间:2023-12-02 16:57:17 25 4
gpt4 key购买 nike

WPFWindows-XP SP3

我在处理简单的 WPF 动画时遇到问题。

我使用以下 Xaml 代码(在 XamlPad 和 WPF 项目中):

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<Border Name="MyBorder" BorderThickness="10" BorderBrush="Blue" CornerRadius="10" Background="DarkRed" >
<Rectangle Name="MyRectangle" Margin="10" StrokeDashArray="2.0,1.0" StrokeThickness="10" RadiusX="10" RadiusY="10" Stroke="Black" StrokeDashOffset="0">
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="MyRectangle" Storyboard.TargetProperty="StrokeDashOffset" From="0.0" To="3.0" Duration="0:0:1" RepeatBehavior="Forever" Timeline.DesiredFrameRate="30" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</Border>
</Page>

它具有使边框围绕矩形动画的效果。机器重新启动后,动画效果非常流畅。然而,我倾向于让我的机器一直开着,经过一段时间(我不知道多长时间)后,动画开始结巴并变得断断续续。

我认为这可能是内存或资源问题,但在关闭所有其他应用程序和任何看似不必要的服务后,口吃仍然持续。然而,系统重新启动后,动画又变得流畅了!

我在 WPF 应用程序或 XamlPad 中遇到相同的症状。对于应用程序来说,无论是在调试器中运行还是直接运行可执行文件似乎都没有任何区别。

我通过此链接应用了补丁:http://support.microsoft.com/kb/981741我以为它已经解决了这个问题,但似乎没有。

我看到一些帖子可能表明使用透明度可能会影响动画,但正如您所看到的,我的 xaml 不使用透明度。

任何人都可以给我一些关于如何确定问题所在的建议吗?是否有任何可能有帮助的 WPF 诊断工具?

更新:我检查了我的视频驱动程序,它们是最新版本。 (nVidia GeForce 8400 GS)

最佳答案

运行动画一天多一点后,我没有看到任何真正可怕的事情发生,尽管内存使用量增加了一点。

我最终做的是在 kaxaml 中的 XP SP3 上运行您的示例,然后使用 perfmon 进行一些穷人的性能检查。

如果您以前没有使用过 perfmon,只需从开始菜单执行 Run -> perfmon 即可。它可能会在列表中出现一些计数器,但如果您不想监视这些值,则可以单击每个计数器并将其删除。我认为您的情况下的 CPU 利用率不是问题,但您可以将其保留在那里以防万一。

右键单击任意位置并选择“添加计数器”,然后在“性能对象”下选择“.NET CLR 内存”。在右侧,选择感兴趣的可执行文件(在我的例子中,它是“Kaxaml”)。在左侧,选择“所有堆中的# 字节”。我还将采样率更改为更大的值,例如 300 秒,这样您就可以更好地了解减速期间的变化率。

这可能无法帮助您发现减速情况,但这是合理的第一步。也许您还应该下载 ANTS 5 分析器的试用版,看看它是否捕获到任何奇怪的东西。

关于WPF 断断续续的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969708/

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