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

在 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

posted @   _蔚蓝  阅读(1859)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示

"很酷,不需要打赏"