ContentElement.Focus Метод

Определение

Попытка задать фокус для данного элемента.Attempts to set focus to this element.

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

Возвраты

true если элемент может получить клавиатурный фокус; false если в результате вызова данного метода элемент фокус не получил.true 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;
  ce.Focus();
}
Private Sub FocusOnParagraph(ByVal sender As Object, ByVal e As RoutedEventArgs)
  Dim ce As ContentElement = TryCast(Me.FindName("focusableP"), ContentElement)
  ce.Focus()
End Sub

Комментарии

Чтобы быть в фокусе, Focusable и IsEnabled должны быть 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.

Фокус в целом регулируется двумя отдельными концепциями: фокус клавиатуры и логический фокус, которые не всегда идентичны.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, IsKeyboardFocused и IsKeyboardFocusWithin также true.If calling Focus returns true, IsKeyboardFocused and IsKeyboardFocusWithin are also true.

Если связанные свойства еще не true, то при вызове Focusодно или несколько из следующих событий вызываются в следующем порядке: PreviewLostKeyboardFocus, PreviewGotKeyboardFocus (источник — это новый целевой объект фокуса), IsKeyboardFocusedChanged, IsKeyboardFocusWithinChanged, LostKeyboardFocus, GotKeyboardFocus (источник — это новый целевой объект фокуса).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).

Применяется к

Дополнительно