私はいくつかの機能のキーボードホットキーを設定するために私のアプリのユーザーにオプションを許可しようとしています。カスタマイズ可能なホットキー設定はどのように処理できますか?
次のように今、私はKeyDown
イベントにTextBox
を使用しています:
Key Hotkey;
private void SetHotKey(object sender, KeyEventArgs e)
{
(sender as TextBox).Text = e.Key.ToString();
Hotkey = e.Key;
e.Handled = true;
}
をこのアプローチの問題は、[F4] + [Ctrl]キーと同じように、私は複雑なショートカットを設定することはできませんです。そこに役立ついくつかのサードパーティのコントロールはありますか?または、テキストボックスで購読するのに適したイベントですか?
UPDATE:私は自分のコードを変更しましたが、私はまだ何か間違ったことをやっているようです。
Key Hotkey;
bool lControl = false;
bool lAlt = false;
bool lShift = false;
private void SetHotKey(object sender, KeyEventArgs e)
{
var k = e.Key;
if (e.IsDown)
{
var tb = sender as TextBox;
tb.Text = "";
lControl = Keyboard.IsKeyDown(Key.LeftCtrl);
lAlt = Keyboard.IsKeyDown(Key.LeftAlt);
lShift = Keyboard.IsKeyDown(Key.LeftShift);
if (lControl) tb.Text += "Ctrl+";
if (lAlt) tb.Text += "Alt+";
if (lShift) tb.Text += "Shift+";
tb.Text = e.Key.ToString();
Hotkey = e.Key;
}
e.Handled = true;
}
私はそれを動作させてよりきれいに見えるようにするにはどうすればよいですか?
可能重複[C#/ WPF:キーボードショートカットを実装(http://stackoverflow.com/questions/3574405/c-wpf-implement-keyboard-shortcuts) – Eldho
@Eldhoない正確。私は何か違うことを求めています。 – Reynevan
上記の答えは、キーボードのショートカットALT + Sやこれに類するものを実装する方法を示しています。 – Eldho