2010-12-30 40 views
7

私はグリッド、ウィンドウのルート要素を持っています。 5秒で背景色を白から緑に変えるアニメーションを適用したい。ここで私は何をしたのですか:WPF:色の変化をアニメーション化する方法は?

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    ColorAnimation animation; 

    animation = new ColorAnimation(); 
    animation.From = Colors.White; 
    animation.To = Colors.Green; 
    animation.Duration = new Duration(TimeSpan.FromSeconds(5)); 
    rootElement.BeginAnimation(Grid.BackgroundProperty, animation); 
} 

コードは機能しません。何も変わっていない。私はどこでミスをしていますか?ありがとう。

<ColorAnimation 
Storyboard.TargetName="PlayButtonArrow" 
Storyboard.TargetProperty="Fill.Color" 
From="White" 
To="Green"    
Duration="0:0:5.0" 
AutoReverse="False"/> 

答えて

13

が解決:

+0

これを解決できてうれしいです。あなたはここで受け入れたものとしてあなた自身の答えを選ぶべきです。 –

+0

@zedo私は知っていますが、それは私が次の2日間でそれを正確にすることができないことを私に伝えます。最初に冷やすのを待っている、ハハハ – Boris

+0

"ホワイト"から "オーバル画像"に色を設定する方法は? – RollRoll

12

は、この試してみて!

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    SolidColorBrush rootElementBrush; 
    ColorAnimation animation; 

    rootElementBrush = this.FindResource("RootElementBrush") as SolidColorBrush; 

    // Animate the brush 
    animation = new ColorAnimation(); 
    animation.To = Colors.Green; 
    animation.Duration = new Duration(TimeSpan.FromSeconds(5)); 
    rootElementBrush.BeginAnimation(SolidColorBrush.ColorProperty, animation); 
} 

ここでの説明です:

私の最初のミスは、私はそれに色を割り当てることにより、Grid.BackgroundPropertyを変更したいということでしたが、それは代わりに、ブラシ...リンゴとオレンジ受け入れます!そこで、SolidColorBrushという静的リソースを作成し、rootElementBrushという名前を付けました。 XAMLでは、その静的リソースに対してGrid rootElementのバックグラウンドプロパティを設定しました。そして最後にアニメーションを修正しましたので、今度はそれをSolidColorBrushの色に変更します。簡単!

+0

私はコードビハインドでそれを必要とし、コードビハインドから呼び出す必要があります。私は色を変更しようとしているので私のコードで間違いを犯しているかもしれないと思っていますが、 'Grid.Background'プロパティは実際にブラシを取っています... – Boris

関連する問題