WPF: teclado

Hay muchos tipos de entradas de teclado como KeyDown, KeyUp, TextInput, etc. En el siguiente ejemplo, se manejan algunas de las entradas de teclado. El siguiente ejemplo define un controlador para el evento Click y un controlador para el evento KeyDown.

  • Creemos un nuevo proyecto WPF con el nombre WPFKeyboardInput.

  • Arrastre un cuadro de texto y un botón a un panel de pila y establezca las siguientes propiedades y eventos como se muestra en el siguiente archivo XAML.

<Window x:Class = "WPFKeyboardInput.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   xmlns:local = "clr-namespace:WPFKeyboardInput" 
   mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> 
	
   <Grid> 
      <StackPanel Orientation = "Horizontal" KeyDown = "OnTextInputKeyDown"> 
         <TextBox Width = "400" Height = "30" Margin = "10"/> 
         <Button Click = "OnTextInputButtonClick"
            Content = "Open" Margin = "10" Width = "50" Height = "30"/> 
      </StackPanel> 
   </Grid> 
	
</Window>

Aquí está el código C # en el que se manejan diferentes eventos de teclado y clic.

using System.Windows; 
using System.Windows.Input; 

namespace WPFKeyboardInput { 
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
      } 
		
      private void OnTextInputKeyDown(object sender, KeyEventArgs e) {
		
         if (e.Key == Key.O && Keyboard.Modifiers == ModifierKeys.Control) { 
            handle(); 
            e.Handled = true; 
         } 
			
      } 
		
      private void OnTextInputButtonClick(object sender, RoutedEventArgs e) { 
         handle(); 
         e.Handled = true; 
      } 
		
      public void handle() { 
         MessageBox.Show("Do you want to open a file?"); 
      }
		
   } 
}

Cuando el código anterior se compila y ejecuta, producirá la siguiente ventana:

Si hace clic en el botón Abrir o presiona las teclas CTRL + O dentro del cuadro de texto, se mostrará el mismo mensaje.