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


Control.Focus(FocusState) Метод

Определение

Пытается установить фокус на элементе управления.

public:
 virtual bool Focus(FocusState value) = Focus;
bool Focus(FocusState const& value);
public bool Focus(FocusState value);
function focus(value)
Public Function Focus (value As FocusState) As Boolean

Параметры

value
FocusState

Указывает способ установки фокуса в виде значения перечисления .

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

Boolean

bool

Значение true , если фокус был установлен на элемент управления или фокус уже находился на элементе управления. значение false , если элемент управления не является фокусируемым.

Примеры

В этом примере нажатие кнопки "Изменить" приводит к настройке фокуса на элементе TextBox, поэтому состояние программного фокуса передается методу Focus.

<StackPanel>
    <Button Content="Edit" Click="Button_Click"/>
    <TextBox x:Name="EditorTextBox" IsReadOnly="True"/>
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
    EditorTextBox.IsReadOnly = false;
    EditorTextBox.Focus(FocusState.Programmatic);
}

Комментарии

Если вызвать этот метод для Control объекта с isTabStop, для параметра IsTabStop задано значение false, вызов будет игнорироваться и фокус не будет перемещаться, а вызов вернет false.

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

Обычно в качестве параметра передается FocusState.Programmatic , чтобы указать, что элемент управления получил фокус через преднамеренный вызов метода Focus. Например, если нажатие кнопки "Изменить" приводит к настройке фокуса на элементе TextBox, используйте состояние Программного фокуса.

Передайте FocusState.Pointer, если вы устанавливаете фокус в качестве прямого результата взаимодействия с указателем. Передайте FocusState.Keyboard в качестве параметра, если вы устанавливаете фокус в результате взаимодействия с клавиатурой, например нажатия клавиши tab или нажатия клавиши. Например, если вы реализуете ItemsControl и обрабатываете нажатия клавиш, чтобы пользователь перемещал фокус между элементами в элементе управления, используйте состояние фокуса клавиатуры при вызове фокуса в обработчике нажатия клавиш.

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

Примечание

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

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

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

См. также раздел