1


2

WPFで一連のキーのKeyBindingを作成できますか?

Visual Studioのショートカットのようなキー押下のシーケンスのためにWPFでキーバインディングを定義することは可能ですか? [.kbd]#Ctrl#+ R, Ctrl + A is run all tests in current solution

私が見る限り、バインドできるのは単一のキーの組み合わせだけです Ctrl + S using the element. Can I bind sequences using これ、またはこれを行うために手動でキーを押す必要がありますか?

2 Answer


4


http://msdn.microsoft.com/をオーバーライドして、独自のhttp://msdn.microsoft.com/en-us/library/system.windows.input.inputgesture.aspx [InputGesture]を作成する必要があります。 en-us / library / system.windows.input.inputgesture.matches.aspx [Matches]メソッド。

そんな感じ:

public class MultiInputGesture : InputGesture
{
    public MultiInputGesture()
    {
        Gestures = new InputGestureCollection();
    }

    public InputGestureCollection Gestures { get; private set; }

    private int _currentMatchIndex = 0;

    public override bool Matches(object targetElement, InputEventArgs inputEventArgs)
    {
        if (_currentMatchIndex < Gestures.Count)
        {
            if (Gestures[_currentMatchIndex].Matches(targetElement, inputEventArgs))
            {
                _currentMatchIndex++;
                return (_currentMatchIndex == Gestures.Count);
            }
        }
        _currentMatchIndex = 0;
        return false;
    }
}

特定のイベントを無視するように(たとえば KeyDown`イベント間の KeyUp`イベントは `_currentMatchIndex`をリセットするべきではありませんが、画像を取得します…​


-1



それは私の終わりにトリックをするようです、私は「mycommand」を実行するためにctrl + P + Eを押さなければなりません