WPF Template - EventTrigger RoutedEvent="DragLeave"



  • Hallo zusammen,

    Einem ListViewItem Style mit gesetzter Template Property spendiere ich folgende Trigger:

    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=(ListViewItem.IsSelected)}" Value="True">                                 
                                    <DataTrigger.Setters>
                                        <Setter TargetName="TemplateParent" Property="Background" Value="LightGray" />
    

    Der im Template enthaltene Border soll also bei IsSelected == true einen grauen Hintergrund annehmen.

    Nun mache ich folgendes:

    <EventTrigger RoutedEvent="DragEnter" SourceName="TemplateParent">
                                    <EventTrigger.Actions>
                                        <BeginStoryboard >
                                            <Storyboard  >
                                                <ColorAnimation Storyboard.TargetName="TemplateParent"  Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                                     To="Red" Duration="0:0:0.4" AutoReverse="False"/>
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </EventTrigger.Actions>
                                </EventTrigger>
    
                                <EventTrigger RoutedEvent="DragLeave" SourceName="TemplateParent" >
                                    <EventTrigger.Actions>                                    
                                        <BeginStoryboard >
                                            <Storyboard>
                                                <ColorAnimation Storyboard.TargetName="TemplateParent"  Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                                     To="White" Duration="0:0:1" AutoReverse="False" />
                                            </Storyboard>
                                        </BeginStoryboard>
                                    </EventTrigger.Actions>
                                </EventTrigger>
    

    Soweit alles okay.

    Ist ein Item nun Selektiert und der EventSetter "DragEnter" greift läuft alles wie gewollt. Beim greifen des "DragLeave" Setters wird die Border.Background Property logischerweise nach "White" animiert.

    Wie muss ich vorgehen, dass ein selektiertes Item nach "LightGray" animiert wird - da ich die To Property der Animation ja scheinbar nicht binden kann ?!


Log in to reply