Keyboard.GotKeyboardFocus Evento adjunto
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando un elemento recibe el foco del teclado.
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
see AddGotKeyboardFocusHandler, and RemoveGotKeyboardFocusHandler
Ejemplos
En el ejemplo siguiente se crean controladores TextBox de eventos y se adjuntan para el GotKeyboardFocus evento y el LostKeyboardFocus evento . Cuando obtiene el TextBox foco del teclado, se cambia el color de fondo y se borra el texto de .TextBox Cuando pierde el TextBlock foco del teclado, se cambia el color de fondo y se llama a un método que restablece las variables usadas en el ejemplo.
<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
Comentarios
Se trata de un evento adjunto. WPF implementa eventos adjuntos como eventos enrutados. Los eventos adjuntos son fundamentalmente un concepto de lenguaje XAML para hacer referencia a eventos que se pueden controlar en objetos que no definen ese evento, en el que WPF se expande también habilitando el evento para atravesar una ruta. Los eventos adjuntos no tienen una sintaxis de control directo en el código; para adjuntar controladores para un evento enrutado en el código, se usa un método Add*Handler designado. Para obtener más información, consulte Información general sobre eventos adjuntos.
El foco del teclado hace referencia al objeto que recibe la entrada del teclado. El elemento con foco de teclado se ha IsKeyboardFocused establecido en true
. Solo puede haber un elemento con foco de teclado en todo el escritorio. El foco lógico hace referencia al objeto dentro de un ámbito de foco que tiene el foco. Para obtener más información sobre el foco, el foco del teclado y el foco lógico, consulte Información general de entrada e Información general sobre el foco.
Si se controla el PreviewGotKeyboardFocus evento o el PreviewLostKeyboardFocus evento, el foco del teclado cambia.
Información sobre eventos enrutados
Campo identificador | GotKeyboardFocusEvent |
Estrategia de enrutamiento | Burbujeante |
Delegado | KeyboardFocusChangedEventHandler |
- El evento de tunelización correspondiente es PreviewGotKeyboardFocus.