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 |
- Соответствующее событие туннелирования — PreviewLostKeyboardFocus.