Compartir vía


Keyboard.GotKeyboardFocus Evento adjunto

Definición

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

Se aplica a