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

标签 c# wpf

我在我的应用程序的面板中有一个类似 TreeView 的自定义控件。当您单击项目时,它们会获得键盘焦点。

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

这会导致麻烦 - 如果我撤消我的剪切,我会取回我的元素,但键盘焦点不再在我的面板上,所以我不能(例如)执行剪切-撤消-剪切-撤消-剪切。

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

最佳答案

我猜你最好的选择可能是在撤消/重做之后手动设置焦点(也许将其封装在一个监听 FocusManager 发送的事件的行为中?)

另见 Set focus on textbox in WPF

关于c# - 当焦点 WPF 元素被移除时,键盘焦点去哪里了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34621094/

相关文章:

.net - 添加/删除视觉/逻辑子项时收到通知

c# - 设置 d :DesignInstance in XAML for DataGridColumn

c# - 如何使用适当的 cultureinfo 将字符串转换为 double

c# - 将颜色分配给 wpf 工具包图表 lineseries 中图例项目附近的矩形

c# - 将数据模板内的元素绑定(bind)到父属性

c# - 在 WPF 中覆盖 OnStartup

c# - .NET Reactor 加密与混淆

需要 C# 简单 DataSocket 示例

c# - 哪些文件必须在 SVN 存储库中才能让其他人能够编译?

c# - 如何在 Reactive Extension C# 中将 IObserable<bool> 转换为 bool