我在我的应用程序的面板中有一个类似 TreeView 的自定义控件。当您单击项目时,它们会获得键盘焦点。
可以选择树中的一组项目,然后按 Ctrl-X 或 Delete 键剪切或删除它们。删除树项后,键盘焦点将恢复到主窗口。
这会导致麻烦 - 如果我撤消我的剪切,我会取回我的元素,但键盘焦点不再在我的面板上,所以我不能(例如)执行剪切-撤消-剪切-撤消-剪切。
当一个元素被移除时,是什么决定了键盘焦点移动到哪里?我很快尝试让我的面板具有 IsFocusScope="True"但这似乎没有任何效果,并且 Focus Overview没有提到如何控制移除元素时焦点的位置。
最佳答案
我猜你最好的选择可能是在撤消/重做之后手动设置焦点(也许将其封装在一个监听 FocusManager
发送的事件的行为中?)
关于c# - 当焦点 WPF 元素被移除时,键盘焦点去哪里了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621094/