使用WPF在外部光晕上平滑动画

时间:2010-07-30 01:51:27

标签: .net wpf animation

我已ToggleButton申请了OuterGlowBitmapEffect。我为这种光芒增添了动感,使它具有脉动效果,引起人们对它的注意。我的问题是,如果我在一秒钟内减慢动画速度,它会停顿不前。如何防止口吃发生?是什么导致它不顺畅?

这是按钮:

<ToggleButton x:Name="btnMap1" Click="btnMap1_Click" Style="{DynamicResource GenericButton}" Width="152" Height="127" IsChecked="True">
    <ToggleButton.BitmapEffect>
        <OuterGlowBitmapEffect GlowColor="White" GlowSize="0" Noise="0" Opacity="1" />
    </ToggleButton.BitmapEffect>
</ToggleButton>

这是动画:

<Storyboard x:Key="ButtonGlow" RepeatBehavior="Forever" Timeline.DesiredFrameRate="30">
    <DoubleAnimation 
            BeginTime="00:00:00"
            Storyboard.TargetName="btnMap1"
            Storyboard.TargetProperty="(UIElement.BitmapEffect).(OuterGlowBitmapEffect.GlowSize)"
            From="0.0"
            To="10.0"
            Duration="0:0:1"
            AutoReverse="True"
            />
</Storyboard>

1 个答案:

答案 0 :(得分:1)

这种效果非常耗费CPU,因为它是软件渲染的而不是GPU生成的。

Microsoft has deprecated this and similar effects and discourages their use

  

不应应用位图效果   大型视觉效果或动画,因为   这会降低性能。

他们建议改为使用BlurEffect