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

简介: 原文:如何移动逻辑焦点、键盘焦点‘在 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

目录
相关文章
|
8月前
键盘绑定按下事件
键盘绑定按下事件
28 0
如何知道鼠标进入及离开一个视图?
如何知道鼠标进入及离开一个视图?
|
8月前
|
开发框架 iOS开发
手机软键盘弹起导致页面变形的一种解决方案
手机软键盘弹起导致页面变形的一种解决方案
299 0
|
Windows
Windows程序设计——窗口键盘消息滚动事件
Windows程序设计——窗口键盘消息滚动事件
237 0
重新认识键盘与鼠标——键盘事件与鼠标事件
重新认识键盘与鼠标——键盘事件与鼠标事件
250 0
重新认识键盘与鼠标——键盘事件与鼠标事件
|
移动开发 数据可视化 前端开发
解决安卓收起键盘无法触发失焦事件的问题
解决安卓收起键盘无法触发失焦事件的问题
954 0
|
Java
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
416 0
swing中一些常见的鼠标事件(鼠标形状的改变、鼠标接近、按下(图标的切换)、鼠标接近、离开(字体颜色的改变)、鼠标拖拽等)还有系统托盘+对话框
|
C# Windows
C#代码像QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法
你QQ的右下角消息框一样,无论现在用户的焦点在哪个窗口,消息框弹出后都不影响焦点的变化,那么有两种方法:   要么重写需要弹出的窗体的事件: protected override CreateParams CreateParams     {     get     {         const ...
1186 0
|
C# Windows
触摸屏:屏幕键盘(虚拟键盘)解决方案
原文:触摸屏:屏幕键盘(虚拟键盘)解决方案  最近需要在win XP系统的工控机上进行程序的开发,工控机是电阻式触摸屏,需要在上面使用触摸键盘,使工控机可以脱离鼠标和键盘独立运行程序。调研后得到一系列的解决方案,mark如下: (1)自己在程序中开发虚拟键盘 这个是最先想到的,本人用C#进行开发,所以只关注C#相关的虚拟键盘开发。
2353 0

热门文章

最新文章