Прочитать на английском

Поделиться через


UIElement.Focus Метод

Определение

Попытка задать фокус для данного элемента.

public bool Focus();

Возвращаемое значение

Значение true, если для данного элемента задан клавиатурный фокус и логический фокус; значение false, если для данного элемента задан только логический фокус или если вызов данного метода не привел к изменению фокуса.

Реализации

Примеры

В следующем примере устанавливается фокус на объект , TextBox на который ссылается Name, а затем настраивается положение курсора TextBoxв .

void OnClickMoveToStart(object sender, RoutedEventArgs e)
{
    tbPositionCursor.Focus();
    tbPositionCursor.Select(0, 0);
}

Комментарии

Чтобы быть фокусируемым, Focusable и IsEnabled оба должны иметь значение true.

Даже если элемент является фокусируемым и допустимым, события предварительного Focus просмотра могут обрабатываться в определенном дереве, а фокусировка на этом элементе может быть запрещена (например, в составном элементе управления). В таком случае этот метод возвращает false.

Как правило, фокус управляется двумя разными понятиями: фокусом клавиатуры и логическим фокусом. Эти два понятия не всегда одинаковы. Дополнительные сведения см. в разделах Сводка фокуса и Общие сведения о входных данных.

Если вызов Focus возвращает true, IsKeyboardFocused и IsKeyboardFocusWithin также trueимеют значение .

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

Для успешного выполнения этого вызова ранее необходимо было сосредоточиться на другом элементе приложения. Кроме того, когда родительский элемент контейнера вызывает этот метод, в некоторых ситуациях дочерний элемент получает фокус, а возвращаемое значение будет иметь значение false. Чтобы проверить, имеет ли элемент фокус, используйте IsKeyboardFocusWithin свойства и IsKeyboardFocused .

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

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10