soh*_*hum 5 wpf tabcontrol storyboard selectionchanged
我有一个TabControl每个TabItem都有一个单独的控件作为其Content元素.现在,通过使用UserControl.LoadedEventTrigger 切换到选项卡时,我可以轻松地执行故事板.但是,我还希望在从一个选项卡切换到另一个选项卡时运行退出动画(即允许旧的Content控件进行动画处理,然后是新的Content控件的入口动画).
是否可以使用标准WPF结构执行此操作?
如果没有,我将如何开发处理此问题的自定义解决方案?
编辑:
我继续做了一个修改过的TabControl,它扩展了基本的TabControl并覆盖了它的OnSelectionChanged方法,如下所示:
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);
}
Run Code Online (Sandbox Code Playgroud)
这很有效,除非我在选项卡之间点击太快,在这种情况下base.OnSelectionChanged永远不会被调用,大概是因为故事板不再活动了.提示?