アニメーションは便利ですが、プロパティの値をアニメーションなしで即座に変更したい場合があります。どうやら、それを行う唯一の方法は、を使用することです<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
編集: 明確にするために:とについては知ってDataTriggers
いますが、必要なものではありません。スタイルとコントロール テンプレートでしか使用できないためです。で を使用してVisualStateManager
いるUserControl
ため、 を使用せざるを得ませんStoryboard
。