2016-03-24 28 views
0

Wir Tasteneingabe mithilfe von Schlüsselereignis erkennen können, scheintDetect Key nicht in Key Enum, in Key Ereignis

private void KeyUp_Or_KeyDown_Event(object sender, KeyEventArgs e) 
{ 
    if (e.Key==Key.SomeKey) //detect key 
    { 
     //do something   
    } 
} 

aber es viele Schlüssel nicht in dem Schlüssel Enum (siehe Link)

https://msdn.microsoft.com/en-us/library/system.windows.input.key(v=vs.110).aspx

wie '\', '[', ']', '`', '=' und so weiter,

Jede Methode des Schlüssel nicht in dem Schlüssel Enum zu erkennen?

Nehmen Sie Textbox zum Beispiel, Ich möchte es tun, auch wenn Benutzer viele zufällige Text in Textfeld eingeben, jederzeit Benutzer drücken Sie die Taste zuweisen kann ich es erkennen.

+0

Erkennen Sie stattdessen diese Tasten in KeyPress. –

Antwort

1

Erstellen Sie eine schnelle Testanwendung, um die Schlüsselwerte für die gesuchten Schlüssel zu sehen.

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" KeyDown="Window_KeyDown"> 
    <TextBlock Name="MyTextBlock">Hit a key</TextBlock> 
</Window> 

-Code hinter:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
    } 

    private void Window_KeyDown(object sender, KeyEventArgs e) 
    { 
     MyTextBlock.Text = Enum.GetName(typeof(System.Windows.Input.Key), e.Key); 
    } 
} 

Dann an den Tasten Knall weg, um zu sehen, was die Codes sind.

+0

Gute Arbeit, ich finde, dass alle Schlüssel in Key Enum sind, und ich denke, sie sind nicht nur, weil ich ihren Schlüsselnamen in der Enum nicht kenne, danke! –