WPF Windows-XP SP3
我在使用简单的WPF动画时遇到了问题。
我在XamlPad和WPF项目中使用以下Xaml代码:
<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)