2011-05-25 62 views
0

目前,我有一组定义的视觉状态,其淡入路径,这里有一个例子:视觉状态淡入淡出?

<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

视觉状态都是关于状态!在您的代码后面,您可以通过VisualStateManager.GoToState方法将控件设置为一个状态。所以,如果你想'调用'一些淡出状态,只需将控件设置为该状态!

+0

哦对,所以我必须明确地设置一个淡出状态,然后...希望有一个自动化的方法,但这绝对是公平的,因为它实际上是一个使用状态的系统。 – tweetypi 2011-05-25 07:25:41

1

我不确定这是否有帮助,但是当您使用ColorAnimation时,我确信您不必设置ColorAnimation.From属性。如果未将其保留,则过渡到视觉状态应从当前设置的颜色开始。 因此,如果您仅使用ColorAnimation.To属性定义故事板,它可能有助于不得不明确声明所有内容?

或者,您可以随时使用自己的子类扩展VisualStateManger。当它收到新的状态更改时,将所有其他VisualStateGroups设置为“关闭”?