如何将焦点设置为UserControl(使其可选)



我需要将焦点设置为UserControl本身,而不是其子。
否则,我无法从缓冲区实现插入。(
设置Focusable=True没有帮助。Google和SO只告诉如何将焦点设置为UserControl子控件。

我的控件包含:
—工具栏,有多个按钮绑定到相应的命令VM
-文本框,它是过滤器
的输入- DataGrid -项目列表。

我需要绑定Ctrl+V命令到VM。但要处理这一姿态,UserControl必须专注于内部。当网格中没有项目(VM的集合为空)时,按钮被禁用,唯一可以获得焦点的元素是TextBox。但是它以自己的方式处理Ctrl+V,我不想改变这种行为。
因此,当我单击UserControl区域时,我需要一些东西来设置焦点。
我相信UserControl是它的最佳候选。
但是我不知道怎么让它变成可选的

整个问题在于我对控件行为的误解。
我相信这个问题清楚地说明了这一点。

因此,设置UserControl.Focusable = true是不够的。为了使它可以通过键盘导航,IsTabStop也必须是true。为了使UC可以通过鼠标点击来选择,我们应该在鼠标事件处理程序中调用Focus()。就是这样。

最新更新