如何移动逻辑焦点、键盘焦点

简介: 原文:如何移动逻辑焦点、键盘焦点‘在 WPF 中,有两个与焦点有关的主要概念:键盘焦点和逻辑焦点。 键盘焦点指接收键盘输入的元素,而逻辑焦点指焦点范围中具有焦点的元素。 本概述将详细介绍这些概念。 理解这些概念之间的区别对于创建具有可以获取焦点的多个区域的复杂应用程序是非常重要的。
原文: 如何移动逻辑焦点、键盘焦点

在 WPF 中,有两个与焦点有关的主要概念:键盘焦点和逻辑焦点。 键盘焦点指接收键盘输入的元素,而逻辑焦点指焦点范围中具有焦点的元素。 本概述将详细介绍这些概念。 理解这些概念之间的区别对于创建具有可以获取焦点的多个区域的复杂应用程序是非常重要的。’  摘自 Microsoft MSDN 焦点概述

一直以来,我写的项目都有键盘焦点的问题,比如 Click 了一个 Button 以后出现下次按回车还会触发 Click ,还有就是 TextBox 输入完成后想把键盘焦点转移到其他非 TextBox 输入框的控件上。

后面在解决这个问题的过程中看到一篇在 stackoverflow 上的提问,发现了可以使用 Keyboard 和 FocusManager 来移动焦点。

C#:

 1 private void Focus(bool value)
 2 {
 3     if (value)
 4         Dispatcher.BeginInvoke(DispatcherPriority.Input,new Action(delegate ()
 5         {
 6             Keyboard.ClearFocus();               //清空键盘焦点
 7             FocusManager.SetFocusedElement(this, null);  //将逻辑焦点移动主窗体
 8             Keyboard.Focus(this);               //将键盘焦点已到主窗体
 9         }));
10 }

 

引用

https://msdn.microsoft.com/zh-cn/library/aa969768(v=vs.110).aspx

目录
相关文章
|
9月前
键盘绑定按下事件
键盘绑定按下事件
28 0
|
9月前
|
开发框架 iOS开发
手机软键盘弹起导致页面变形的一种解决方案
手机软键盘弹起导致页面变形的一种解决方案
303 0
|
Windows
Windows程序设计——窗口键盘消息滚动事件
Windows程序设计——窗口键盘消息滚动事件
238 0
Qt实用技巧:将QWidget作为输入窗口,接收键盘消息、输入法并且控制输入法悬浮工具栏位置控制
Qt实用技巧:将QWidget作为输入窗口,接收键盘消息、输入法并且控制输入法悬浮工具栏位置控制
重新认识键盘与鼠标——键盘事件与鼠标事件
重新认识键盘与鼠标——键盘事件与鼠标事件
250 0
重新认识键盘与鼠标——键盘事件与鼠标事件
【selenium】鼠标控制和键盘控制
简介:【selenium】鼠标控制和键盘控制
【selenium】鼠标控制和键盘控制
|
移动开发 数据可视化 前端开发
解决安卓收起键盘无法触发失焦事件的问题
解决安卓收起键盘无法触发失焦事件的问题
967 0
|
Java
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
417 0
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
|
C# Windows
C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法
你QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法:   要么重写需要弹出的窗体的事件: protected override CreateParams CreateParams     {     get     {         const ...
1186 0