У меня есть код:ColorAnimation, Завершена событие не работает более чем один раз
<UserControl.Resources>
<SolidColorBrush x:Key="KeysBorderBrush" Color="DimGray" />
</UserControl.Resources>
<ComboBox Name="Keys" HorizontalAlignment="Left" Margin="116,2,0,2" Width="122" BorderBrush="{DynamicResource KeysBorderBrush}" />
И CodeBehind:
SolidColorBrush keysBorderBrush;
ColorAnimation _keysAnimation;
public Constructor()
{
_keysAnimation = new ColorAnimation();
_keysAnimation.Completed += _keysAnimation_Completed;
}
private void Active_Checked(object sender, RoutedEventArgs e)
{
keysBorderBrush = (SolidColorBrush)this.FindResource("KeysBorderBrush");
keysBorderBrush.Color = Colors.Black;
_keysAnimation.To = Colors.Red;
_keysAnimation.AutoReverse = true;
_keysAnimation.RepeatBehavior = new RepeatBehavior(2);
_keysAnimation.DecelerationRatio = .1;
_keysAnimation.Duration = TimeSpan.FromMilliseconds(500);
keysBorderBrush.BeginAnimation(SolidColorBrush.ColorProperty, _keysAnimation);
}
void _keysAnimation_Completed(object sender, EventArgs e)
{
keysBorderBrush.Color = Colors.DimGray;
}
Моя цель: Установите черный цвет, а затем анимировать, а затем возвращение цвет до серого в событии _keysAnimation_Completed
.
Проблема в обработчике событий _keysAnimation_Completed
, он не хочет, чтобы цвет вернулся к DimGray
, он работает только один раз, во втором + цвете остается в черном все время, как я могу его исправить?
Попробуйте это: Ресурсы [ «KeysBorderBrush»] = новый SolidColorBrush (Colors.DimGray) –
Я пытался воспроизвести вашу проблему, но анимация не работает с ванильный WPF 'ComboBox' - кажется, что шаблон управления по умолчанию' ComboBox' не учитывает свойство зависимостей 'BorderBrush' (см. https://msdn.microsoft.com/en-us/library/ms752094(v=vs 0,110) .aspx). Вы изменили шаблон управления по умолчанию? А когда запускается обработчик 'Active_Checked'? – feO2x
Reza ArabQaeni, Да, этот вариант тоже работает, tnx – SkyDancer