WPFに焦点を当てる
WPFには、キーボードフォーカスと論理フォーカスの2種類のフォーカスがあります。
多くの人は最初は理解していませんが、なぜ2つの焦点があるのですか?
これらの2つの焦点の違いは何ですか?
どちらを使うべきですか?
今日はWPFの焦点を説明します。さて、あなたは突然一般的なアプリケーションを見るでしょう。ハハハ。
1.結論
結論から始めましょう。キーボードフォーカスは真のフォーカスであり、論理フォーカスは偽のフォーカスです。
フォーカスを取得するということは、コントロールがフォーカスを取得した後、アクティブになることを意味することを理解しています。
キーボードフォーカスは、通常、トゥルーフォーカスと呼ばれるものです。コントロールがキーボードフォーカスを取得すると、アクティブになります。
ただし、コントロールが論理的にフォーカスを取得した場合、アクティブであるとは限りません。
2.コンセプト
1.キーボードフォーカス
キーボードフォーカスは私たちの常識の焦点です。
コントロールがキーボードフォーカスを取得すると、コントロールがアクティブになります。キーボードフォーカス要素を取得するために、
デスクトップキーボードフォーカス全体で1つだけがキーボード入力を受け入れることができます。
2.論理的な焦点と焦点範囲
論理フォーカス:フォーカス範囲内のキーボードフォーカスの位置を記録するために使用されます。
フォーカス範囲:論理フォーカスを移動でき、論理フォーカスがフォーカス範囲を離れることができない範囲。
ときにキーボードフォーカス葉フォーカスレンジ、論理フォーカスは従いませんにキーボードフォーカスを残し、それが去ったとき。場合は位置のままでは、キーボードフォーカスこれに戻ってフォーカス範囲を、それは最初に戻りますの位置論理フォーカス。
3つの一般的なアプリケーション
ロジックフォーカスのアプリケーションは、複数のウィンドウを操作するのに最も直感的です。
Webページの入力ボックスにコンテンツを入力し、別のWebページまたはソフトウェアに切り替えてから、前のWebページに戻る準備ができているときはいつでも、カーソルがこの入力ボックスに残っていることがわかります。なぜ彼はあなたのカーソルの前の位置を覚えているのですか?私たちは常に、これが事実であるべきだと考えています。実際、これは論理フォーカスがの形式で保持されるためです。
2つのWebページを直接開いてから、切り替えて表示することができます。簡単だ。
場合キーボードフォーカスに戻り焦点範囲は、制御論理フォーカスが配置されている最初取得キーボードフォーカスを。
この例を通して、これらの3つの概念をすぐに理解できると思います。
4、フォーカス管理
FcousManagerクラス
FocusManager
このクラスは、フォーカス管理のための2つの追加プロパティを提供します。
1.FocusedElement
コントロールを指定します。画面を開くと、このコントロールは自動的にキーボードフォーカスを取得します。
2.IsFocusScope
この追加プロパティを設定するコントロールがフォーカス範囲を確立するかどうか。
に設定するTrue
と、このコントロールでフォーカス範囲が形成されます。フォーカスがこの範囲を離れると、内部の子コントロールは論理フォーカスを保持します。
そして、フォーカスを管理するいくつかの方法:
FcousManager.GetFocusScope()方法
このメソッドを使用して、最新のフォーカス範囲に戻ります。
FocusManager.GetIsFocus()メソッド
コントロールがフォーカス範囲であるかどうかを指定します。
FocusManager.SetFocused()方法
制御に論理的な焦点を当てます。
注:フォーカスを取得するための前提は、FocusableプロパティがTrueであるということです。
フォーカスを管理する他の方法
Keyboard.Focus()メソッド
指定されたコントロールのキーボードフォーカスを取得してみてください
Control.Focus()メソッド
指定されたコントロールのキーボードフォーカスを取得してみてください
IsFocused
論理的な焦点が得られているかどうかを確認します
IsKeyboardFocused
キーボードフォーカスが得られているかどうかを確認します
それはあなたを助けますか?いいね〜