Binding EasingColorKeyframe Value - PullRequest
       9

Binding EasingColorKeyframe Value

2 голосов
/ 17 января 2012

Я сделал простую анимацию, используя Expression Blend.проблема в том, что я не могу понять, как связать значения каждого ключевого кадра, blend не позволит мне сделать это, и после изменения XAML кажется, что доза связывания не работает так, как я ожидаю.

Вот код XAML:

  <ColorAnimationUsingKeyFrames  RepeatBehavior="Forever" Storyboard.TargetProperty="(TextElement.Foreground).(GradientBrush.GradientStops)[1].(GradientStop.Color)" Storyboard.TargetName="mainToggleButton">
            <EasingColorKeyFrame KeyTime="0:0:0.2" Value="{Binding RelativeSource={RelativeSource Self}, Path=LowColor}"/>
            <EasingColorKeyFrame KeyTime="0:0:0.4" Value="{Binding RelativeSource={RelativeSource Self}, Path=HighColor}"/>
            <EasingColorKeyFrame KeyTime="0:0:0.8" Value="{Binding RelativeSource={RelativeSource Self}, Path=HighColor}"/>
            <EasingColorKeyFrame KeyTime="0:0:1"   Value="{Binding RelativeSource={RelativeSource Self}, Path=LowColor}"/>
            <EasingColorKeyFrame KeyTime="0:0:1.4" Value="{Binding RelativeSource={RelativeSource Self}, Path=HighColor}"/>
            </ColorAnimationUsingKeyFrames>

Вот свойства DependencyProperties в коде

        [Category("Flash")]
        public Brush HighColor
        {
            get { return (Brush)GetValue(HighColorProperty); }
            set { SetValue(HighColorProperty, value); }
        }

        // Using a DependencyProperty as the backing store for HighColor.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty HighColorProperty =
            DependencyProperty.Register("HighColor", typeof(Brush), typeof(AttentionControl), new UIPropertyMetadata(Brushes.LightGreen));


        [Category("Flash")]
        public Brush LowColor
        {
            get { return (Brush)GetValue(LowColorProperty); }
            set { SetValue(LowColorProperty, value); }
        }

        // Using a DependencyProperty as the backing store for LowColor.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty LowColorProperty =
            DependencyProperty.Register("LowColor", typeof(Brush), typeof(AttentionControl), new UIPropertyMetadata(Brushes.DarkGreen));

Анимация будет работать, но связующая доза не работает, похоже, чтоесли доза цвета не меняется через анимацию.

Спасибо.

1 Ответ

0 голосов
/ 17 января 2012

анимация вроде бы в порядке, Я бы проверил это на прозрачном фоне, чтобы вы могли видеть все цвета, если таковые имеются .... Также я не могу найти общую продолжительность и время начала для каждого ключевого кадра (я сомневаюсь, что это проблема), но вы никогда не знаете, Это определенно стоит попробовать.

...