Допустим, у меня есть такой элемент управления:
<Button Style="{StaticResource MyButton}">
<Polygon Style="{StaticResource MyButtonIcon}"
Points="... some points ..." />
</Button>
MyButton - это стиль фона кнопки, тогда как MyButtonIcon - это стиль самого многоугольника значка кнопки. Я хотел бы тонко анимировать кнопку, когда пользователь наводит указатель мыши на кнопку. Мне удается анимировать фон (определенный в MyButton) обычным способом в шаблоне (VisualStateManager / VisualState / MouseOver / StoryBoard / ColorAnimation) . Чтобы понять, мое объявление ColorAnimation выглядит примерно так:
<ColorAnimation Storyboard.TargetName="BackgroundTop"
Storyboard.TargetProperty="Color"
To="#FFFFFF"
Duration="0:0:0.200" />
Это хорошо работает для фона. Тем не менее, я хотел бы также оживить цвета градиентных точек полигона контента. Я не могу просто поместить анимацию в MyButtonIcon, потому что я хочу, чтобы многоугольник анимировался, когда мышь наводит курсор мыши на любую точку, а не только на многоугольник внутри кнопки. Я полагаю, это будет выглядеть примерно так:
<ColorAnimation Storyboard.TargetName="MyContentPresenter"
Storyboard.TargetProperty="Some.Really.Long.Path.Color"
To="#FFFFFF"
Duration="0:0:0.200" />
Вопрос в том, каким должно быть значение «Some.Really.Long.Path.Color»? То есть, например, если я хочу получить доступ к свойству цвета первой градиентной остановки «Заливка» многоугольника внутри предъявителя контента, как бы я поступил так? Или я пытаюсь сделать это совершенно неправильно?
Надеюсь, я был ясен и предоставил достаточно подробностей, дайте мне знать, если вам нужно узнать больше.