[WPF自定义控件库] 让Form在加载后自动获得焦点 (2)

在Window加载(或者Window本身被激活)时,它都会用类似的代码让Window中的逻辑焦点元素获得焦点。

DependencyObject doContent = Content as DependencyObject; if (doContent != null) { IInputElement focusedElement = FocusManager.GetFocusedElement(doContent) as IInputElement; if (focusedElement != null) focusedElement.Focus(); } 4. 结语

其实没有这个类也可以,反正代码简单,只是想通过这个类介绍下附加属性和Focus的用法。

自定义控件要做好焦点管理,尤其是现在,因为很多设计师、产品经理、开发者都有丰富的手机应用开发设计经验,由于手机上的键盘导航逻辑和桌面应用的有些出入,所以键盘导航的细节很容易被忽视。

不过,通常来说用着用着觉得不顺手就会有人提出需求,细心的开发者总会渐渐把键盘导航做好。

5. 参考

焦点概述 Microsoft Docs

FocusManager Class (System.Windows.Input) Microsoft Docs

Keyboard.Focus(IInputElement) Method (System.Windows.Input) Microsoft Docs

6. 源码

Kino.Toolkit.Wpf_FocusService.cs

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzyjf.html