FlipView EventTrigger for the SelectionChanged event
本文关键字:SelectionChanged event the for EventTrigger FlipView | 更新日期: 2023-09-27 17:56:08
我正在开发通用应用程序。在一页上,我决定使用FlipView。我可以轻松地从代码隐藏中对 SelectionChanged 事件进行动画处理,但我只是好奇是否有办法仅使用 XAML 对此事件进行动画处理。(顺便说一句,UseTouchAnimationsForAllNavigation="True"不起作用)。所以,这是我正在做的事情的简化示例:
<FlipView x:Name="MultipleItems">
<FlipView.Triggers>
<EventTrigger RoutedEvent="Selector.SelectionChanged">
<BeginStoryboard>
<Storyboard x:Name="ColorStoryboard">
//do stuff
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<FlipView.Triggers>
</FlipView>
我认为这种使用方式 EventTrigger 很好(就 SelectionChanged 事件采用从 RoutedEventArgs 继承的参数而言),但它在导航到包含 FlipView 的页面时仍然给我运行时错误。
下一个错误是:
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.
我相信有办法正确分配该 RoutedEvent 属性,但我还没有找到它。我也不会为这么简单的事情使用行为。
谁能帮忙?
您需要
在项目中安装 Microsoft.Xaml.Behaviors.Uwp.Managed。然后,UWP 项目中将支持该EventTrigger
。
然后在 XAML 中,按如下所示使用此包:
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
xmlns:Media="using:Microsoft.Xaml.Interactions.Media"
现在,您可以像这样更改FlipView
的背景颜色:
<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>
如您所见,我使用了EventTriggerBehavior
,事件的名称是 SelectionChanged
.