私のApplication.Resources
に私は次のように定義しました:Storyboard
コードビハインドでWP7 - Application.Resourcesで定義されているストーリーボードの使用
<Application.Resources>
<!--Storyboard animation for fading out a UI element-->
<Storyboard x:Key="FadeOutAnimation">
<DoubleAnimation From="1"
To="0"
Duration="0:0:0.25"
Storyboard.TargetProperty="Opacity"
AutoReverse="False" />
</Storyboard>
</Application.Resources>
私は、ユーザーがそれらをタップしたときに、いくつかのTextBlock
Sをフェードアウトするためにこれを使用しています。
// Get the storyboard from application resources
Storyboard sb = (Storyboard)App.Current.Resources["FadeOutAnimation"];
// Setup the animation target for fade out
Storyboard.SetTarget(sb.Children.ElementAt(0) as DoubleAnimation, myTextBlock);
// Set the animation completed handler
sb.Completed += (s, e1) => {
// Stop the Storyboard
sb.Stop();
// Hide the TextBlock
myTextBlock.Visibility = Visibility.Collapsed;
};
// Start the Storyboard
sb.begin();
質問です、私は何とかDoubleAnimation
の対象であることからmyTextBlock
「を外し」する必要がありますか?
「はい」の場合はどうすればよいですか?
私が尋ねる理由は、このストーリーボードが再び使用されるまで、TextBlock
がぶら下がっていることを心配しています。
ありがとうございました!
そうです、コードビハインドでこれを行う方が良いです。 – Praetorian
@Praetorian:すべてのコードが「コードビハインド」であるわけではありませんが、上記はそうではありません。このような便利なメソッドがいくつかあるヘルパークラスを想像することができます。それはちょうどあなた自身のツールキットの一部になります。 – AnthonyWJones
ストーリーボードインスタンスを使用するためには何が必要ですか? – kabuto178