Плавная анимация на внешнем свечении с WPF - PullRequest
2 голосов
/ 30 июля 2010

У меня 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 Ответ

2 голосов
/ 30 июля 2010

Этот эффект очень сильно загружает процессор, так как он создается программным обеспечением, а не генерируется графическим процессором.

Microsoft не одобряет этот и подобные эффекты и не рекомендует их использовать .

Эффекты растрового изображения не следует применять к большим визуальным элементам или анимации, поскольку это может ухудшить производительность.

Они предлагают использовать BlurEffect вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...