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


Keyboard.GotKeyboardFocus Присоединенное событие

Определение

Происходит, когда элемент получает фокус клавиатуры.

see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler

Примеры

В следующем примере создается TextBox и присоединяется обработчики событий для GotKeyboardFocus события и LostKeyboardFocus события . Когда объект TextBox получает фокус клавиатуры, цвет фона изменяется, а текст TextBox очищается. При потере фокуса TextBlock клавиатуры изменяется цвет фона и вызывается метод , который сбрасывает переменные, используемые в образце.

<Border BorderBrush="Black" BorderThickness="1"
        Width="200" Height="100" Margin="5">
  <StackPanel>
    <Label HorizontalAlignment="Center" Content="Type Text In This TextBox" />
    <TextBox Width="175"
             Height="50" 
             Margin="5"
             TextWrapping="Wrap"
             HorizontalAlignment="Center"
             VerticalScrollBarVisibility="Auto"
             GotKeyboardFocus="TextBoxGotKeyboardFocus"
             LostKeyboardFocus="TextBoxLostKeyboardFocus"
             KeyDown="SourceTextKeyDown"/>
  </StackPanel>
</Border>
private void TextBoxGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
    TextBox source = e.Source as TextBox;

    if (source != null)
    {
        // Change the TextBox color when it obtains focus.
        source.Background = Brushes.LightBlue;

        // Clear the TextBox.
        source.Clear();
    }
}
Private Sub TextBoxGotKeyboardFocus(ByVal sender As Object, ByVal e As KeyboardFocusChangedEventArgs)
    Dim source As TextBox = TryCast(e.Source, TextBox)

    If source IsNot Nothing Then
        ' Change the TextBox color when it obtains focus.
        source.Background = Brushes.LightBlue

        ' Clear the TextBox.
        source.Clear()
    End If
End Sub
private void TextBoxLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
    TextBox source = e.Source as TextBox;

    if (source != null)
    {
        // Change the TextBox color when it loses focus.
        source.Background = Brushes.White;

        // Set the  hit counter back to zero and updates the display.
        this.ResetCounter();
    }
}
Private Sub TextBoxLostKeyboardFocus(ByVal sender As Object, ByVal e As KeyboardFocusChangedEventArgs)
    Dim source As TextBox = TryCast(e.Source, TextBox)

    If source IsNot Nothing Then
        ' Change the TextBox color when it loses focus.
        source.Background = Brushes.White

        ' Set the  hit counter back to zero and updates the display.
        Me.ResetCounter()
    End If
End Sub

Комментарии

Это присоединенное событие. WPF реализует присоединенные события как перенаправленные события. Присоединенные события по сути являются концепцией языка XAML для ссылки на события, которые могут обрабатываться в объектах, которые не определяют это событие, что WPF расширяет, также позволяя событию проходить по маршруту. Вложенные события не имеют синтаксиса прямой обработки в коде; Для присоединения обработчиков для перенаправленного события в коде используется назначенный метод Add*Handler. Дополнительные сведения см. в разделе Общие сведения о присоединенных событиях.

Фокус клавиатуры относится к объекту, который получает ввод с клавиатуры. Элемент с фокусом клавиатуры имеет IsKeyboardFocused значение true. Во всем рабочем столе может быть только один элемент с фокусом клавиатуры. Логический фокус ссылается на объект в область фокуса. Дополнительные сведения о фокусе, фокусе клавиатуры и логическом фокусе см. в разделах Общие сведения о вводе и Обзор фокусировки.

PreviewGotKeyboardFocus Если событие или PreviewLostKeyboardFocus событие обработано, фокус клавиатуры меняется.

Сведения о маршрутизируемом событии

Поле идентификатора GotKeyboardFocusEvent
Стратегия маршрутизации Восходящей
Делегат KeyboardFocusChangedEventHandler

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