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


Control.FocusState Свойство

Определение

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

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

Значение свойства

Значение перечисления. Значение Unfocused указывает, что элемент управления не имеет фокуса.

Комментарии

Это свойство поддерживает элементы управления, использующие различные стили визуальных элементов в зависимости от того, был ли элемент управления сфокусирован с помощью клавиатуры или другими способами. Некоторые элементы управления используют визуальные состояния, которые показывают видимый индикатор фокуса, если элемент управления был сфокусирован с помощью действия клавиатуры, но не показывает индикатор, если элемент управления был сфокусирован с помощью действия указателя. Внутренняя логика такого элемента управления реализует OnGotFocus , а затем получает значение FocusState от отправителя. Если focusState имеет значение Keyboard, то загружается другое именованное визуальное состояние, включающее прямоугольник фокуса, путем вызова GoToState. Как правило, визуальные состояния, связанные с фокусом, группируются в XAML шаблона элемента управления по умолчанию. Пользовательские элементы управления, которые хотят использовать различные визуальные элементы фокуса в зависимости от средств фокусировки, могут реализовать эту же логику сами. См . раздел OnGotFocus.

Другой способ использовать это свойство — использовать FocusManager для определения элемента в общем пользовательском интерфейсе, а затем вызвать FocusState для этого элемента, чтобы получить сведения о том, как элемент управления получил фокус.

Примечания для предыдущих версий

Примечание

В Windows 8, когда FocusState имеет значение Программное, визуальный элемент фокуса клавиатуры отображается, даже если предыдущий метод ввода был указателем. В Windows 8.1 при вызове Focus (FocusState.Programmatic) сохраняется предыдущее значение FocusState ( Указатель или Клавиатура), чтобы отображался правильный визуальный элемент фокуса. Это означает, что если проверка значение свойства FocusState после вызова Focus (FocusState.Programmatic), свойство FocusState будет иметь значение Указатель или Клавиатура.

В приложении, которое скомпилировано для Windows 8, но выполняется в Windows 8.1, поведение Windows 8 сохраняется. Значение свойства FocusState — Программное, и отображается визуальный элемент фокуса клавиатуры.

Примечание

Классы, наследующие от ItemsControl, такие как ListBox и AutoSuggestBox, не распространяются на свойство FocusState. Они всегда будут возвращаться unfocused. Получите доступ к правильному значению через RoutedEventArgs.OriginalSource.

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