WPFの焦点

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

キーボードフォーカスが得られているかどうかを確認します

それはあなたを助けますか?いいね〜

おすすめ

転載: blog.csdn.net/qq_42068856/article/details/103097137