目前我定义了一组视觉状态,这些视觉状态在路径中淡入,这是一个例子:
<VisualState x:Name="MyPathFadeIn">
<Storyboard>
<ColorAnimation Storyboard.TargetName="MyPath" Storyboard.TargetProperty="(Path.Fill).(SolidColorBrush.Color)" From="#00000000" To="Red" Duration="0:0:1.5" />
</Storyboard>
</VisualState>
现在我想知道,如果我从代码隐藏中改变当前的视觉状态,有没有办法自动调用某种淡出状态?
答案 0 :(得分:2)
视觉状态都与国家有关!在您的代码中,您可以通过VisualStateManager.GoToState
方法将控件设置为某个状态。所以,如果你想“调用”一些淡出状态,只需将控件设置为该状态!
答案 1 :(得分:1)
我不确定这是否有帮助,但当您使用ColorAnimation
时,我非常确定您不必设置ColorAnimation.From
属性。如果不设置它,则转换到可视状态应该从当前设置的颜色开始。
因此,如果您仅使用ColorAnimation.To
属性定义故事板,那么必须明确声明所有内容可能会有所帮助吗?
或者,您始终可以使用自己的子类扩展VisualStateManger
。一个在收到新状态更改时将所有其他VisualStateGroups
设置为“关闭”的情况?