C# 当焦点WPF元素被移除时,键盘焦点去了哪里?

C# 当焦点WPF元素被移除时,键盘焦点去了哪里?,c#,wpf,C#,Wpf,我在应用程序的面板中有一个自定义的树状视图控件。当您单击项目时,它们将接收键盘焦点 可以在树中选择一组项目,然后按Ctrl-X或Delete键剪切或删除它们。删除树项目后,键盘焦点将恢复到主窗口 这会导致麻烦-如果我撤消剪切,我会恢复元素,但键盘焦点不再在面板上,因此我无法(例如)进行剪切撤消剪切 删除元素时,什么决定键盘焦点的移动位置?我很快尝试使我的面板具有IsFocusScope=“True”,但这似乎没有任何效果,并且没有提到如何在删除元素时控制焦点的位置。我想最好的办法可能是在撤消/重

我在应用程序的面板中有一个自定义的树状视图控件。当您单击项目时,它们将接收键盘焦点

可以在树中选择一组项目,然后按Ctrl-X或Delete键剪切或删除它们。删除树项目后,键盘焦点将恢复到主窗口

这会导致麻烦-如果我撤消剪切,我会恢复元素,但键盘焦点不再在面板上,因此我无法(例如)进行剪切撤消剪切


删除元素时,什么决定键盘焦点的移动位置?我很快尝试使我的面板具有IsFocusScope=“True”,但这似乎没有任何效果,并且没有提到如何在删除元素时控制焦点的位置。

我想最好的办法可能是在撤消/重做后手动设置焦点(可能将其封装在侦听事件
FocusManager
发送的行为中?)

另见