2016-01-05 102 views
4

我在我的应用程序的面板中有一个自定义类似TreeView的控件。当你点击物品时,他们会收到键盘焦点。焦点WPF元素被删除时,键盘焦点在哪里?

可以在树中选择一组项目并通过按下Ctrl-X或Delete来剪切或删除它们。当树项目被移除时,键盘焦点恢复到主窗口。

这会导致麻烦 - 如果我撤消剪切,我会返回元素,但键盘焦点不再位于面板上,因此我不能(例如)剪切撤消剪切撤消剪切。

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

回答

0

我想你最好的选择可能会撤销/重做后手动设置焦点(其中监听FocusManager发送事件的行为也许这个包裹?)

参见Set focus on textbox in WPF