我的xaml定义中有这个Canvas
<Canvas Width="128" Height="128" Margin="10">
<Canvas.CacheMode>
<BitmapCache />
</Canvas.CacheMode>
<Canvas.Triggers>
<EventTrigger RoutedEvent="Canvas.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="0" To="360"
RepeatBehavior="Forever"
Storyboard.TargetName="spin"
Storyboard.TargetProperty="(RotateTransform.Angle)"
/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
<Canvas.RenderTransform>
<RotateTransform x:Name="spin" Angle="0" CenterX="64" CenterY="64" />
</Canvas.RenderTransform>
<Image Source="Images\CircularLoading.png" Width="128" Height="128" />
</Canvas>
这个动画占用了我50%的CPU,我怎样才能提高性能?
答案 0 :(得分:3)
你正在以尽可能快的速度旋转。我猜你有两个核心,所以50%一个完全忙着旋转。也许你可以在你的Duration
中添加DoubleAnimation
,这样就需要花费几秒钟的时间旋转360度,从而减少CPU负载。
另一方面,如果按性能表示你想要更快地旋转,利用另外50%的CPU,你应该考虑硬件支持和可能的图形框架。 WPF很不错,但不适用于高性能图形。