Я сделал простую анимацию, используя 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));
Анимация будет работать, но связующая доза не работает, похоже, чтоесли доза цвета не меняется через анимацию.
Спасибо.