我正在开发 UWP 应用程序,并且正在尝试实施 MVVM 方法。基本上,当 Binding 的值在运行时发生变化时,我试图运行 Storyboard。到目前为止,我想出了以下内容:<UserControl ... xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:Core="using:Microsoft.Xaml.Interactions.Core" xmlns:Media="using:Microsoft.Xaml.Interactions.Media"> <UserControl.Resources> <Storyboard x:Name="cValueSB" AutoReverse="True" RepeatBehavior="3"> <DoubleAnimation To="0" Duration="0:0:0.5" Storyboard.TargetName="cvalue" Storyboard.TargetProperty="(UIElement.Opacity)"/> </Storyboard> <Storyboard x:Name="hValueSB" AutoReverse="True" RepeatBehavior="3"> <DoubleAnimation To="0" Duration="0:0:0.5" Storyboard.TargetName="hvalue" Storyboard.TargetProperty="(UIElement.Opacity)"/> </Storyboard> <Storyboard x:Name="lValueSB" AutoReverse="True" RepeatBehavior="3"> <DoubleAnimation To="0" Duration="0:0:0.5" Storyboard.TargetName="lvalue" Storyboard.TargetProperty="(UIElement.Opacity)"/> </Storyboard> <Storyboard x:Name="nValueSB" AutoReverse="True" RepeatBehavior="3"> <DoubleAnimation To="0" Duration="0:0:0.5" Storyboard.TargetName="nvalue" Storyboard.TargetProperty="(UIElement.Opacity)"/> </Storyboard> </UserControl.Resources> <Grid> <VisualStateManager.VisualStateGroups> <VisualStateGroup> <VisualState x:Name="large"> <VisualState.StateTriggers> <AdaptiveTrigger MinWindowWidth="{StaticResource ScreenWidthSixForty}"/> </VisualState.StateTriggers>我面临的问题是,当 Binding 的值发生变化时,动画无法正常工作。除非绝对必要,否则我想尽可能避免任何直接代码隐藏。这甚至是正确的方法吗?我是 Xaml Behaviors 的新手,所以希望在实现它方面得到一些帮助。如果有更完善的方法来实现上述目标,我很乐意知道。谢谢。
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
当行为绑定到的数据满足指定条件时,将触发 DataTriggerBehavior。您只是绑定到属性,但没有指定任何条件来触发此行为。
基本上,当 Binding 的值在运行时发生变化时,我试图运行 Storyboard。
根据您的要求,您需要添加ComparisonCondition="NotEqual",如果您有一个固定值与绑定属性值进行比较,您可以添加Value=xxx.
<Interactivity:Interaction.Behaviors>
<Core:DataTriggerBehavior Binding="{Binding CurrentValue, Mode=OneWay, UpdateSourceTrigger=Default}" ComparisonCondition="NotEqual">
<Media:ControlStoryboardAction
Storyboard="{StaticResource cValueSB}"
ControlStoryboardOption="Play"/>
</Core:DataTriggerBehavior>
</Interactivity:Interaction.Behaviors>
- 1 回答
- 0 关注
- 200 浏览
添加回答
举报
0/150
提交
取消