Je le code suivant:TranslateTransform dans le style
<Window.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="LayoutTransform">
<Setter.Value>
<TranslateTransform />
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever" AutoReverse="True">
<DoubleAnimation
From="300"
To="-300"
Storyboard.TargetProperty="LayoutTransform.X"
Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
<TextBlock
Grid.Column="1"
Text="This is a sample text."/>
<Rectangle Grid.Column="0" Fill="AliceBlue"/>
<Rectangle Grid.Column="2" Fill="Aquamarine"/>
Essentiellement, ce que j'essaie de réaliser, c'est que le contenu de TextBlock devrait défiler de droite à gauche (et inversement). D'une manière ou d'une autre, ce style ne fait rien. Si je change TranslateTransform en ScaleTransform et change LayoutTransform.X en LayoutTransform.ScaleX, le TextBlock est très bien animé. Est-ce un bug dans WPF ou est-ce que je manque quelque chose?
Ok, le problème est LayoutTransform (voici l'explication de MSDN): La définition d'une transformation fournit de puissantes fonctionnalités de mise à l'échelle et de rotation. Toutefois, LayoutTransform ignore les opérations TranslateTransform. Cela est dû au fait que le comportement du système de disposition pour les éléments enfants d'un objet FrameworkElement corrige automatiquement les décalages vers la position d'un élément mis à l'échelle ou pivoté dans le système de disposition et de coordonnées de l'élément parent. Modifié LayoutTransform à RenderTransform et fonctionne maintenant comme un charme. –