2016-07-08 8 views
1

Ich entwickle universelle App. Auf einer Seite entschied ich mich FlipView zu verwenden. Ich kann SelectionChanged Ereignis von code-behind leicht animieren, aber ich bin nur neugierig, wenn es eine Möglichkeit gibt, dieses Ereignis nur mit XAML zu animieren. (BTW, UseTouchAnimationsForAllNavigation = "True" funktioniert nicht). So , hier vereinfachtes Beispiel von dem, was ich tue:FlipView EventTrigger für das SelectionChanged-Ereignis

<FlipView x:Name="MultipleItems"> 
       <FlipView.Triggers> 
       <EventTrigger RoutedEvent="Selector.SelectionChanged"> 
        <BeginStoryboard> 
         <Storyboard x:Name="ColorStoryboard"> 
          //do stuff 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
       <FlipView.Triggers> 
    </FlipView> 

Ich denke, diese Art der Nutzung Eventtrigger in Ordnung ist (soweit Selectionereignisargumente von RoutedEventArgs geerbt nehmen), aber es gibt nach wie vor mir Laufzeitfehler auf Navigation zu einer Seite, die FlipView enthält.

Fehler ist weiter:

WinRT information: Failed to assign to property 'Windows.UI.Xaml.EventTrigger.RoutedEvent'. [Line: 69 Position: 35] 

    Additional information: The text associated with this error code could not be found. 

Ich glaube Art und Weise richtig, dass RoutedEvent Eigenschaft zuweisen gibt es, aber ich habe nicht es noch finden. Auch ich benutze Verhalten für solch eine einfache Sache nicht.

Kann jemand helfen?

Antwort

2

Sie müssen die Microsoft.Xaml.Behaviors.Uwp.Managed in Ihrem Projekt installieren. Dann wird die EventTrigger in einem UWP-Projekt unterstützt.

dann in XAML mit diesem Paket wie folgt aus:

xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" 
xmlns:Core="using:Microsoft.Xaml.Interactions.Core" 
xmlns:Media="using:Microsoft.Xaml.Interactions.Media" 

Jetzt können Sie zum Beispiel die Hintergrundfarbe von FlipView wie folgt ändern:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Grid.Resources> 
     <Storyboard x:Key="std" x:Name="std" > 
      <ColorAnimation From="Red" To="Transparent" Duration="0:0:3" 
          Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
          Storyboard.TargetName="flipView"/> 
     </Storyboard> 
    </Grid.Resources> 
    <FlipView x:Name="flipView" ItemsSource="{x:Bind flipviewCollection}"> 
     <Interactivity:Interaction.Behaviors> 
      <Core:EventTriggerBehavior EventName="SelectionChanged"> 
       <Media:ControlStoryboardAction Storyboard="{StaticResource std}" /> 
      </Core:EventTriggerBehavior> 
     </Interactivity:Interaction.Behaviors> 
     <FlipView.ItemTemplate> 
      <DataTemplate> 
       <Image Source="{Binding ImageSource}" Stretch="None"/> 
      </DataTemplate> 
     </FlipView.ItemTemplate> 
    </FlipView> 
</Grid> 

Wie Sie sehen können, habe ich EventTriggerBehavior und der Name des Ereignisses lautet SelectionChanged.