文章出處

在 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


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()