2017-12-05 9 views
1

UserControl不透明度プロパティは正しく設定できますが、バインド後はStoryboardに設定できません。ストーリーボードアニメーションが既に設定されているコントロールに不透明度を直接設定する

UserControl MyControl; 
MyControl.Opacity = 0.8; /// This works before animation set 

Storyboard sb = new Storyboard(); 
DoubleAnimation opacity = new DoubleAnimation(); 
opacity.From = 1; 
opacity.To = 0; 
opacity.Duration = TimeSpan.FromMilliseconds(400); 
Storyboard.SetTarget(opacity, MyControl); 
Storyboard.SetTargetProperty(opacity, new PropertyPath(UserControl.OpacityProperty)); 
sb.Children.Add(opacity); 
sb.Begin(); 

sb.Completed += (object sender, EventArgs e) => { 
    MyControl.Opacity = 0.5; /// This doesn't work anymore 
} 

Storyboardの完了後の動作方法を教えてください。

答えて

1

プロパティがアニメーション化された後でプロパティの値を変更できないように見えることがあります。 あなたが試すことができます。

sb.Completed += (object sender, EventArgs e) => { 
sb.Remove(MyControl); 
    MyControl.Opacity = 0.5; 
} 

理由は、私が試したが、うまくいきませんでした

+0

How to: Set a Property After Animating It with a Storyboardを説明しています。私は 'MyControl'を' Storyboard'に直接追加していないのに、なぜコントロールを 'Remove'するのですか? – Val

+0

素敵な記事、 'FillBehavior = FillBehavior.Stop'は私のために働きます。ありがとうございました! – Val

+0

@Valあなたは大丈夫です –

関連する問題