动画很好,但有时我只想立即更改属性的值,而不需要任何动画。显然,这样做的唯一方法是使用 a <Something>AnimationUsingKeyFrames
:
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="txtStatus" Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Red" />
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
语法是一团糟... 7 行代码只是为了将属性设置为不同的值?!
有没有更简单的方法?
我希望能够做这样的事情:
<Storyboard>
<Setter TargetName="txtStatus" Property="Foreground" Value="Red" />
</Storyboard>
(我知道这段代码是无效的,这只是为了举例说明我想要什么)
编辑:只是为了说清楚:我知道Triggers
and DataTriggers
,但它们不是我需要的,因为它们只能用于样式和控件模板中。我正在使用VisualStateManager
in a UserControl
,所以我被迫使用 a Storyboard
。