FocusScope学习一: Logic Focus与Keyboard Focus
来源:互联网 发布:数据报表的减法 编辑:程序博客网 时间:2024/06/15 20:43
Logic Focus与Keyboard Focus
http://www.cnblogs.com/Code-life/archive/2009/12/06/1618017.html
1.定义
Keyboard Focus可以理解为物理焦点。就是整个桌面上可以响应键盘输入的地方,整个桌面在某个时刻只可能有一个地方能接受键盘的输入,因此整个桌面在某个时刻只可能有一个Keyboard Focus.
Logic Focus从字面上理解是逻辑焦点。一般带“逻辑”字眼的东西都有可能是“虚”的,在这里也不例外。
Logic Focus并不是真正的焦点。它只是在桌面上某个范围内,在该范围未获得物理焦点之前,该范围默认的在该范围之内的“焦点”,当该范围获得物理焦点时,会首先将物理焦点分配给逻辑焦点所在的地方。这个“范围”称作Focus Scope. 在WPF中默认被设置成的Focus Scope有 Window, MenuItem, ToolBar, and ContextMenu。也可以手动设置某个控件成为Focus Scope(通过设置FocusManager.IsFocusScope附加属性或调用FocusManager.SetFocusScope方法)。和Keyboard Focus对应,每一个Focus Scope内只有一个Logic Focus.
综上所述Keyboard Focus与Logic Focus不是任何时候都相等,Keyboard Focus只和同一个Focus Scope内的Logic Focus相等。
2.API
WPF中提供Keyboard类和FocusManager类来分别管理Keyboard Focus和Logic Focus.通过这个两个类可以Set和Get相应类型的Focus(FocusManager还可以Set和Get Focus Scope)以及提供相应类型Event.
3. Focus的改变
1)用户的操作会改变Keyboard Focus,同时也会改变同一个Focus Scope内的Logic Focus。
2)通过Keyboard和FocusManager中提供的API可以改变相应类型的Focus。
3)通过控件的Focus方法可以改变Focus Scope内的Logic Focus,如果Keyboard Focus也在此Focus Scope中则同时也会改变Keyboard Focus.
4)通过控件的MoveFocus方法可以改变Keyboard Focus(调用该方法时需要传递一个TraversalRequest来指示移动的方向,TraversalRequest中包含指示移动方向的FocusNavigationDirection 枚举对象)
- FocusScope学习一: Logic Focus与Keyboard Focus
- 键盘焦点和逻辑焦点(Logic Focus与Keyboard Focus )
- focus and keyboard hide
- focus
- focus
- Focus
- QML ---- Keyboard Focus in QML --- 键盘交互
- SearchView Get focus and pop soft keyboard
- 获得Focus与buttonMode
- readyState与focus
- FocusScope学习三: 对FocusScope 的探究与总结
- #309 – 键盘焦点和逻辑焦点(Keyboard Focus vs. Logical Focus)
- X Keyboard focus mechanism and typical operation of modern toolkits
- Android ListView with EditText loses focus when the keyboard displays
- FOCUS Lifer
- 集中力(focus)
- jquery focus
- 方向-Focus
- SQLite函数应用(二)
- Android核心分析28篇,强烈推荐android初学者
- 在程序中如何把两张图片合成为一张图片
- ASP.NET网站中显示实时时间
- jquery插件弹出窗口爆炸效果!
- FocusScope学习一: Logic Focus与Keyboard Focus
- 使用NSInvocation 调用实例的方法,且等待获得返回值
- 刚学linux的gdb
- 私有API
- 关于mmap内存映射的修改同步
- 去掉字符串两边的字符
- NGOD client 完成感想
- Btrace在性能测试中的使用
- JavaScript中的this关键字介绍