2017-11-16 4 views

答えて

1

小さなテストプログラムを作成して、Keyが何であるかを調べました。新しいWPFプロジェクトを作成し、メインウィンドウCS-ファイルに追加します。

public MainWindow() 
{ 
    InitializeComponent(); 
    var skip = new[] { Key.None, Key.DeadCharProcessed }; 
    foreach (Key value in Enum.GetValues(typeof(Key))) 
     if (!skip.Contains(value)) 
      InputBindings.Add(new KeyBinding { Command = new MyCommand(value.ToString()), Key = value }); 
} 

public class MyCommand : ICommand 
{ 
    public event EventHandler CanExecuteChanged; 

    public string Text { get; } 

    public MyCommand(string text) { Text = text; } 

    public bool CanExecute(object parameter) => true; 
    public void Execute(object parameter) => MessageBox.Show(Text); 
} 

あなたの時間を節約するために:

Ü = Key.Oem1 
Ö = Key.Oem3 
Ä = Key.OemQuotes 
+0

この質問https://stackoverflow.com/questions/582403/what-are-the -emem-keys-in-the-system-windows-forms-keys-enumerationは、これらがキーボード製造元によって変更される可能性があることを示唆しているため、OPは別の解決策を見つけなければならない可能性があります... – Will

+0

@Will、 、ありがとう。私の解決策に従うためには、自分のソフトウェアのキーを再定義する仕組みを提供する必要があります。 – Sinatr

+0

@Sinatr:どうもありがとう。今私は理解し、それを機能させることができます。 –

2

KeyBinding.Keyが列挙されているので、あなたはすべての可能な値hereを見ることができます。あなたのウムラウト文字はその列挙体の一部ではないので、あなたはそれを使うことができません。

関連する問題