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


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

Определение

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

see AddLostKeyboardFocusHandler, and RemoveLostKeyboardFocusHandler
see AddLostKeyboardFocusHandler, and RemoveLostKeyboardFocusHandler
see AddLostKeyboardFocusHandler, and RemoveLostKeyboardFocusHandler

Примеры

В следующем примере создается 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 событие обрабатывается, фокус клавиатуры не меняется.

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

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

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