我正在开发 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 的新手,所以希望在实现它方面得到一些帮助。
如果有更完善的方法来实现上述目标,我很乐意知道。谢谢。
翻过高山走不出你
相关分类