DoubleAnimationを使用してXAMLでフェードアウトアニメーションを設定しています。それはFrame
をフェードアウトし、完了したらCompleted
イベントを発生させます。WPF:イベントハンドラ内からアニメーションを起動したコントロールの名前を取得する方法は?
私はイベントハンドラ内からアニメーションを起動したコントロールの名前を取得したいと思いますが、私は方法を見つけることができません。
XAML
<Button x:Name="btnNavMessages">
<!-- Some Text-->
<Button.Triggers>
<EventTrigger RoutedEvent="Button.PreviewMouseDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="MichaelFrame"
Storyboard.TargetProperty="Opacity"
To="0"
Duration="0:0:1"
Completed="DoubleAnimation_Completed" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
コードビハインド
任意の助けいただければ幸いです。ありがとう。
EDIT:
私は、次のコードを試してみましたが、それは動作しますが、それは本当にエレガントではありません。優雅さに加えて、迷惑なバグがあります。ボタンをクリックしてアニメーションを押している間にタブフォーカスが変わり、アプリケーションが停止します。その他のソリューション?
Button btn = FocusManager.GetFocusedElement(this) as Button;
私は考えることができる唯一のことは、それがあった時にボタンを "思い出す" ことです押されたそれはおそらく同じようにハッキーですが、あなたが記述したバグに悩まされることはありません。 – ChrisF
@ChrisF - そのような実装の例を教えていただけますか? – Sipo