1. ホーム
  2. wpf

WPFで複数の修飾キーを持つKeyBindingを作成する

2023-08-29 14:34:19

質問内容

私が作成した KeyBinding のようなものでした。

<KeyBinding Modifiers="Ctrl" Key="S" Command="{Binding SaveCommand}" />

しかし、2つの修飾キーが必要な場合はどうでしょうか?例えば Ctrl + シフト .

どのように解決するのですか?

ドキュメントによると、モディファイアを分離するために、単に + 文字で区切るとあります。

<KeyBinding Modifiers="Ctrl+Shift" Key="S" Command="{Binding SaveCommand}" />

参照 を参照してください。 をご覧ください。リンクが消えてしまったときのために、関連する部分を以下に抜粋しておきます。


XAML

<object property="oneOrMoreModifierKeys"/>

XAML 値

oneOrMoreModifierKeys - 1つまたは複数のモディファイア・キー。 ModifierKeys で区切られています。 + 文字で区切られます。


キーと修飾語のコンボではなく、ジェスチャーを単独で使用することもできます。

<KeyBinding Gesture="Ctrl+Shift+S" Command="{Binding SaveCommand}" />

のように、同じドキュメントのリンクにあるように

XAML で KeyBinding を定義するとき、KeyGesture を指定する 2 つの方法があります。

XAML で KeyBinding を確立する最初の方法は、KeyBinding 要素の Gesture 属性を定義することです。これは、たとえば "CTRL+P" のように、キーと修飾子を単一の文字列で指定する構文を可能にします。

2つ目の方法は、KeyBinding要素のKey属性とModifiers属性を定義する方法です。

KeyGestureを設定する両方の方法は同等であり、同じ基礎となるオブジェクトを変更しますが、両方を使用すると衝突が発生します。Key属性、Modifiers属性、Gesture属性のすべてが設定されている場合、最後に定義された属性がKeyGestureに使用されます。