J'ai un ListView
avec un ItemContainerStyle
défini comme tel:WPF Trigger/Style remplace une autre
<ListView Width="auto"
SelectionMode="Single"
ItemContainerStyle="{StaticResource ItemContStyle}"
....
Puis, en baseListViewStyle
, j'ai défini certains styles de base à appliquer à mes ListView
s, y compris un déclencheur Style
:
<Style x:Key="baseListViewStyle" TargetType="ListViewItem">
<Setter Property="Height" Value="20" />
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
Le Trigger
met en évidence la ligne lorsque la souris est dessus. Agréable.
J'ai aussi un DataTrigger
sur le ListViewItem
:
<Style.Triggers>
<DataTrigger Binding="{Binding IsTestTrue}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource SomeFunkyAnimation}" />
</DataTrigger.EnterActions>
</DataTrigger>
Si le test est vrai, une animation peu fade belle se joue. Tout cela fonctionne sauf quand je déplace ma souris sur la ligne où "test est vrai" l'animation s'arrête et le style de la souris est affiché.
Des idées comment je peux remplacer ce style dans mon DataTrigger
?
TIA
Mise à jour:
SomeFunkyAnimation
anime la couleur de fond. Le XAML est ici:
<Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource baseListViewStyle}">
<Style.Resources>
<Storyboard x:Key="SomeFunkyAnimation" FillBehavior="Stop">
<ColorAnimation Storyboard.TargetProperty="Background.Color" RepeatBehavior="Forever" From="Red" To="Pink" Duration="0:0:3"/>
</Storyboard>
</Style.Resources>
Le déclencheur MouseOver
est défini dans baseListViewStyle
. Le DataTrigger
est défini dans ItemContStyle
.
J'ai essayé de retirer la gâchette de style MouseOver
mais cela n'a pas fonctionné comme je crois que le Listview
a un défaut MouseOver
de style déjà défini il remplace mon animation DataTrigger
.
Qu'est-ce que votre animation * funky * anime? La propriété 'Foreground' aussi bien? Et où votre 'DataTrigger' est-il défini? Dans le style 'ListViewItem' par défaut, ou est-ce un style local? Plus important: le trigger 'IsMouseOver' et le' DataTrigger' sont-ils définis dans le même style? – gehho
gehho ... merci de regarder. Réponses à la question initiale – ozczecho
Hmmm, je ne vois pas l'erreur alors. Pardon... – gehho