ContentElement.Focus メソッド


この要素にフォーカスを設定することを試みます。Attempts to set focus to this element.

 virtual bool Focus();
public bool Focus ();
abstract member Focus : unit -> bool
override this.Focus : unit -> bool
Public Function Focus () As Boolean


キーボード フォーカスをこの要素に設定できなかった場合は true。このメソッド呼び出しがフォーカスを強制しなかった場合は falsetrue if keyboard focus could be set to this element; false if this method call did not force focus.


次の例は、ドキュメント内の指定された名前付き段落を検索し、それにフォーカスを設定するページ読み込みイベントハンドラーです。The following example is a page-loaded event handler that finds a specified named paragraph in the document and sets focus to it. 既定では、段落はフォーカスを設定できません。この段落にはスタイルが適用されています (表示されません)。スタイル Setter を使用して、フォーカスを設定可能にしています。Paragraphs are not focusable by default; this particular paragraph had a style applied (not shown) that used a style Setter to make it focusable.

void FocusOnParagraph(object sender, RoutedEventArgs e)
  ContentElement ce = this.FindName("focusableP") as ContentElement;
Private Sub FocusOnParagraph(ByVal sender As Object, ByVal e As RoutedEventArgs)
  Dim ce As ContentElement = TryCast(Me.FindName("focusableP"), ContentElement)
End Sub


フォーカスを設定できるようにするには、FocusableIsEnabled を両方とも trueする必要があります。To be focusable, Focusable and IsEnabled must both be true. 既定では、ほとんどすべての ContentElement 派生クラスが Focusable ないことに注意してください。Note that nearly all ContentElement derived classes are not Focusable by default.

要素がフォーカス可能で有効になっている場合でも、特定のツリー (複合コントロールなど) 内のイベント処理は、フォーカスを許可しないことでプレビューフォーカスイベントに応答する可能性があるため、このメソッドは falseを返します。Even if an element is focusable and enabled, event handling within a specific tree, (such as for a composite control) might respond to the preview focus events by not allowing focus there, thus this method would return false.

一般に、キーボードフォーカスと論理フォーカスという2つの異なる概念が適用されます。これは、常に同一であるとは限りません。Focus in general is governed by two separate concepts: keyboard focus and logical focus, which are not always identical. このメソッドは、論理フォーカスを設定します。This method sets the logical focus. 特にキーボードフォーカスを設定するプログラム的な方法はありません。キーボードフォーカスは、ユーザー入力によって決定されます。There is no programmatic means to set keyboard focus specifically; keyboard focus is determined by user input. 詳細については、「フォーカスの概要」と「入力の概要」を参照してください。For more information, see Focus Overview and Input Overview.

Focus を呼び出すと trueが返される場合、IsKeyboardFocusedIsKeyboardFocusWithintrueます。If calling Focus returns true, IsKeyboardFocused and IsKeyboardFocusWithin are also true.

関連するプロパティがまだ trueていない場合、Focusを呼び出すと、次の1つ以上のイベントが次の順序で発生します。 PreviewLostKeyboardFocusPreviewGotKeyboardFocus (ソースは新しいフォーカスターゲット)、IsKeyboardFocusedChangedIsKeyboardFocusWithinChangedLostKeyboardFocusGotKeyboardFocus (ソースは新しいフォーカスターゲット) です。If the related properties are not already true, when you call Focus, one or more of the following events are raised in the following order: PreviewLostKeyboardFocus, PreviewGotKeyboardFocus (source is the new focus target), IsKeyboardFocusedChanged, IsKeyboardFocusWithinChanged, LostKeyboardFocus, GotKeyboardFocus (source is the new focus target).