Control.FocusState プロパティ

定義

このコントロールにフォーカスがあるかどうかを示す値と、フォーカスが取得されたモードを取得します。

public:
 property FocusState FocusState { FocusState get(); };
FocusState FocusState();
public FocusState FocusState { get; }
var focusState = control.focusState;
Public ReadOnly Property FocusState As FocusState

プロパティ値

列挙体の値。 [ フォーカスなし] の値は、コントロールにフォーカスがないことを示します。

注釈

このプロパティは、コントロールがキーボードまたはその他の方法でフォーカスされたかどうかに応じて、異なるビジュアル スタイルを使用するコントロールをサポートします。 一部のコントロールでは、コントロールがキーボード アクションによってフォーカスされている場合は、表示されているフォーカス インジケーターを表示する視覚的な状態を使用しますが、コントロールがポインター アクションによってフォーカスされている場合はインジケーターは表示されません。 このようなコントロールの内部ロジックは OnGotFocus を実装し、送信者から FocusState の値を取得します。 FocusState が Keyboard の場合は、 GoToState を呼び出すことによって、フォーカス四角形を含む別の名前付きビジュアル状態が読み込まれます。 通常、フォーカス関連のビジュアル状態は、既定のコントロール テンプレート XAML でグループ化されます。 フォーカスの手段に応じて異なるフォーカス ビジュアルを使用するカスタム コントロールは、この同じロジック自体を実装できます。 「OnGotFocus」を参照してください。

このプロパティを使用するもう 1 つの方法は、 FocusManager を使用して UI 全体のどの要素がフォーカスを持つかを判断し、その要素に対して FocusState を呼び出して、そのコントロールがフォーカスを受け取った方法に関する情報を取得することです。

以前のバージョンのメモ

注意

Windows 8では、FocusState が Programmatic の場合、以前の入力メソッドがポインターであった場合でも、キーボード フォーカス ビジュアルが表示されます。 Windows 8.1では、Focus (FocusState.Programmatic) を呼び出すと、以前の FocusState (ポインターまたはキーボード) が保持され、正しいフォーカス ビジュアルが表示されます。 つまり、Focus (FocusState.Programmatic) を呼び出した後に FocusState プロパティの値をチェックすると、FocusState プロパティの値は Pointer または Keyboard になります。

Windows 8用にコンパイルされたが、Windows 8.1で実行されるアプリでは、Windows 8の動作は保持されます。 FocusState プロパティの値は Programmatic で、キーボード フォーカス ビジュアルが表示されます。

注意

ListBoxAutoSuggestBox など、ItemsControl から継承するクラスは、FocusState プロパティを伝達しません。 彼らは常に フォーカスされていないを返します。 RoutedEventArgs.OriginalSource を介して正しい値にアクセスします。

適用対象