视觉状态淡入淡出?

时间:2011-05-25 07:17:33

标签: c# silverlight code-behind

目前我定义了一组视觉状态,这些视觉状态在路径中淡入,这是一个例子:

<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>

现在我想知道,如果我从代码隐藏中改变当前的视觉状态,有没有办法自动调用某种淡出状态?

2 个答案:

答案 0 :(得分:2)

视觉状态都与国家有关!在您的代码中,您可以通过VisualStateManager.GoToState方法将控件设置为某个状态。所以,如果你想“调用”一些淡出状态,只需将控件设置为该状态!

答案 1 :(得分:1)

我不确定这是否有帮助,但当您使用ColorAnimation时,我非常确定您不必设置ColorAnimation.From属性。如果不设置它,则转换到可视状态应该从当前设置的颜色开始。 因此,如果您仅使用ColorAnimation.To属性定义故事板,那么必须明确声明所有内容可能会有所帮助吗?

或者,您始终可以使用自己的子类扩展VisualStateManger。一个在收到新状态更改时将所有其他VisualStateGroups设置为“关闭”的情况?