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.