私は、TabControl
それぞれTabItem
がそのContent
要素として個別のコントロールを持っている場所を持っています。UserControl.Loaded
これで、 EventTriggerを使用して、タブに切り替えるときにストーリーボードを簡単に実行できるようになりました。ただし、あるタブから別のタブに切り替えるときに、終了アニメーションも実行したいと考えています (つまり、古いコンテンツ コントロールをアニメーション化してから、新しいコンテンツ コントロールの開始アニメーションを実行できるようにします)。
標準の WPF コンストラクトでこれを行うことは可能ですか?
そうでない場合、これを処理するカスタム ソリューションを開発するにはどうすればよいでしょうか?
編集:
先に進み、次のようにベース TabControl を拡張し、そのOnSelectionChanged
メソッドをオーバーライドする変更された TabControl を作成しました。
protected override void OnSelectionChanged(SelectionChangedEventArgs e)
{
if (e.AddedItems.Count == 1 && e.RemovedItems.Count == 1)
{
var oldTab = e.RemovedItems[0] as TabItem;
if (oldTab != null)
{
var exitStoryboard = /** code to find the storyboard **/
if (exitStoryboard != null)
{
exitStoryboard.Completed = (_, __) => base.OnSelectionChanged(e);
exitStoryboard.Begin();
return;
}
}
}
base.OnSelectionChanged(e);
}
おそらくストーリーボードがアクティブでなくなったため、base.OnSelectionChangedが呼び出されることはありません。チップ?