您当前的位置: 首页 > 

君子居易

暂无认证

  • 0浏览

    0关注

    210博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

WPF中的焦点

君子居易 发布时间:2021-03-16 11:28:12 ,浏览量:0

WPF中的焦点分两种:键盘焦点和逻辑焦点。 很多人刚开始不理解,为什么有两个焦点? 这两个焦点有什么区别? 我应该用哪个? 今天就来讲解一下WPF中的焦点。嗯,看到常见应用那里你就会豁然开朗的。

一、结论 先说结论:键盘焦点是真焦点,逻辑焦点是假焦点。

我们理解的获得焦点是指:一个控件获得焦点后,将处于活动状态。 键盘焦点就是我们通常说的真焦点,当控件获得键盘焦点后,将处于活动状态。 但控件获得逻辑焦点时,并不能保证处于活动状态。

二、概念 1.键盘焦点 键盘焦点就是我们常识中的焦点。 当一个控件获得键盘焦点时,这个控件将处于活动状态。 整个桌面上只能有一个键盘焦点,获得键盘焦点的元素,才可以接受键盘输入。

2.逻辑焦点和焦点范围 逻辑焦点:用于记录键盘焦点在焦点范围中的位置。 焦点范围:逻辑焦点可以活动的范围,逻辑焦点不能离开焦点范围。

当键盘焦点离开焦点范围时,逻辑焦点不会跟随键盘焦点离开,而是保留在离开时的位置,当键盘焦点回到这个焦点范围时,首先会回到逻辑焦点所在的位置。

三、常见应用 逻辑焦点的应用在多个窗体间交互最为直观。

每当你在网页上的某个输入框准备输入内容时,切换到其他网页或软件,再回到刚才的网页,你会发现,你的光标还是在这个输入框内。为什么他能记住你光标之前的位置呢?我们总是想当然以为,本来就该是这样啊。其实这就是因为窗体中保留了逻辑焦点。 你可以直接开两个网页,然后切换看看就知道了。很简单。

当键盘焦点回到焦点范围时,逻辑焦点所在控件首先获得键盘焦点。 通过这个例子,相信各位瞬间就能理解这三个概念了吧。

四、焦点管理 FcousManager类 FocusManager类为焦点管理提供了两个附加属性。

1.FocusedElement 指定一个控件,当打开这个画面时,这个控件自动获得键盘焦点。

2.IsFocusScope 设置这个附加属性的控件是否建立焦点范围。 如果设置为True,则这个控件内形成一个焦点范围。当焦点离开这个范围时,内部的子控件将会保留逻辑焦点。

以及一些管理焦点的方法:

FcousManager.GetFocusScope()方法 使用该方法返回最近一个焦点范围。

FocusManager.GetIsFocus()方法 指定控件是否时焦点范围。

FocusManager.SetFocused()方法 使一个控件获得逻辑焦点。

注意:要获得焦点的前提是,Focusable属性为True。

其他管理焦点的方法 Keyboard.Focus()方法 尝试为指定控件获得键盘焦点

Control.Focus()方法 尝试为指定控件获得键盘焦点

IsFocused 检测是否获得逻辑焦点

IsKeyboardFocused 检测是否获得键盘焦点 ———————————————— 版权声明:本文为CSDN博主「笑我归无处」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_42068856/article/details/103097137

关注
打赏
1660814979
查看更多评论
立即登录/注册

微信扫码登录

0.0339s