Пользовательские элементы управления WPF с раскадровкой анимации - отрывистые / изменчивые - PullRequest
3 голосов
/ 20 апреля 2011

Я добавляю несколько пользовательских элементов управления в Canvas. Каждый элемент управления имеет свою раскадровку, которая выполняется под нагрузкой. Я замечаю, что это очень изменчиво и вяло, так как выполняет 20-секундную анимацию. Это не невероятно сложно, и я бы ожидал лучшей производительности. Любые ошибки, которые я должен высматривать? Вот пример раскадровки:

<Storyboard x:Key="mystoryboard" RepeatBehavior="Forever">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Effect).(BlurEffect.Radius)" Storyboard.TargetName="itemgroup">
            <SplineDoubleKeyFrame KeyTime="0" Value="30"/>
            <SplineDoubleKeyFrame KeyTime="0:0:4" Value="0"/>
            <SplineDoubleKeyFrame KeyTime="0:0:8" Value="0"/>
            <SplineDoubleKeyFrame KeyTime="0:0:10" Value="30"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="itemgroup">
            <SplineDoubleKeyFrame KeyTime="0" Value="0"/>
            <SplineDoubleKeyFrame KeyTime="0:0:2" Value="0.96"/>
            <SplineDoubleKeyFrame KeyTime="0:0:4" Value="1"/>
            <SplineDoubleKeyFrame KeyTime="0:0:7" Value="1"/>
            <SplineDoubleKeyFrame KeyTime="0:0:8" Value="1"/>
            <SplineDoubleKeyFrame KeyTime="0:0:10" Value="0"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="itemgroup">
            <SplineDoubleKeyFrame KeyTime="0" Value="0.1"/>
            <SplineDoubleKeyFrame KeyTime="0:0:10" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="itemgroup">
            <SplineDoubleKeyFrame KeyTime="0" Value="0.1"/>
            <SplineDoubleKeyFrame KeyTime="0:0:10" Value="1"/>
        </DoubleAnimationUsingKeyFrames>
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="itemgroup">
            <SplineDoubleKeyFrame KeyTime="0" Value="-60"/>
            <SplineDoubleKeyFrame KeyTime="0:0:10" Value="0"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>

1 Ответ

1 голос
/ 26 апреля 2011

Я заметил похожую ситуацию с относительно простой анимацией раскадровки фигур на холсте.Для меня виноват DropShadowEffect;удаление тени сгладило анимацию.У вас есть какие-либо эффекты, применяемые к вашим элементам управления?

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