При использовании Storyboard.SetTargetName
имя должно быть значением фактического Name свойства экземпляра FrameworkElement, в котором вы хотите анимировать свойство.Так что в вашем случае, вероятно, экземпляр элемента управления SpotLightAuditorium
:
Storyboard.SetTargetName(mouseEnterColorAnimation, mySpotlightAuditorium.Name);
Путь к свойству должен быть ссылкой на фактическое свойство зависимости:
Storyboard.SetTargetProperty(mouseEnterColorAnimation, new PropertyPath(SpotLightAuditorium.ColorProperty));
Если вы хотите анимироватьНепосредственно для кисти (у которой нет свойства Name) необходимо зарегистрировать имя кисти в текущей странице / UserControl / Window, используя RegisterName Это так же, как при использовании XAML x:Name
.
ALternativlely вы можете использовать следующий подход для элементов, которые являются производными от Animatable :
ColorAnimation mouseEnterColorAnimation = new ColorAnimation();
mouseEnterColorAnimation.To = Colors.Red;
mouseEnterColorAnimation.Duration = TimeSpan.FromSeconds(5);
myAnimatedBrush.BeginAnimation(SolidColorBrush.ColorProperty, null); // remove the old animation to prevent memoryleak
myAnimatedBrush.BeginAnimation(SolidColorBrush.ColorProperty, mouseEnterColorAnimation);