Dans un style, comment puis-je faire référence à l'élément sur lequel le style est appliqué? Par exemple, dans le style que je définis un RenderTransform
, et je voudrais ajouter une animation sur le RenderTransform:Dans un style, comment puis-je faire référence à l'élément sur lequel le style est appliqué?
<Style x:Key="myStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform />
</Setter.Value>
</Setter>
<Setter Property="RenderTransformOrigin"
Value="0.5, 0.5" />
<Style.Triggers>
<EventTrigger RoutedEvent="MouseDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.2"
From="1"
To="1.2"
AutoReverse="True"
Storyboard.Target="{Binding RenderTransform}"
Storyboard.TargetProperty="(ScaleTransform.ScaleX)" />
<DoubleAnimation Duration="0:0:0.2"
From="1"
To="1.2"
AutoReverse="True"
Storyboard.Target="{Binding RenderTransform}"
Storyboard.TargetProperty="(ScaleTransform.ScaleY)" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
Bien sûr, le code ne fonctionne pas, parce que {Binding RenderTransform}
utilise DataContext comme source. J'ai essayé de spécifier le RelativeSource
avec le mode FindAncestor
, mais il ne peut pas trouver un parent FrameworkElement
(probablement parce que le storyboard ne fait pas partie de l'arborescence visuelle).
Existe-t-il un moyen de lier à une propriété de l'élément sur lequel le style est appliqué?
Bien sûr! Si simple que je n'y ai même pas pensé ... Merci! –