问题描述
||
我有一个由viewmodel中的一个属性触发的情节提要,这会触发动画开始。
但是,在完成动画处理后,如何将\“ Saved \”属性设置回False(以触发Exitaction。)
<Style targettype=\"TextBlock\" x:Key=\"FadeInOut\">
<Style.Triggers>
<DataTrigger Binding=\"{Binding Saved}\" Value=\"True\">
<DataTrigger.Enteractions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty=\"Opacity\" Duration=\"0:0:1\" From=\"0\" To=\"1\" />
<!-- set \"Saved\" to false when done -->
</Storyboard>
</BeginStoryboard>
</DataTrigger.Enteractions>
<DataTrigger.Exitactions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty=\"Opacity\" Duration=\"0:0:1\" From=\"1\" To=\"0\" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.Exitactions>
</DataTrigger>
</Style.Triggers>
</Style>
解决方法
如果可以导航到属性,我建议您在结束时使用带有离散帧的BooleanAnimationUsingKeyFrames。
<BooleanAnimationUsingKeyFrames
Storyboard.TargetProperty=\"DataContext.Saved\"
FillBehavior=\"HoldEnd\">
<DiscreteBooleanKeyFrame Value=\"False\" KeyTime=\"0:0:1\" />
</BooleanAnimationUsingKeyFrames>
由于您使用绑定到“ 2”,因此我假设使用DataContext应该可以工作。
,您可以使用ObjectAnimationUsingKeyFrames设置属性。我不确定是否可以使用其他动画,但这是我最近使用的动画。
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty=\"Saved\">
<DiscreteObjectKeyFrame KeyTime=\"0\">
<DiscreteObjectKeyFrame.Value>
<system:Boolean>False</system:Boolean>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>