0

私は、RibbonWindow 型の MainWindow と (明らかに) リボン コントロールを含む WPF アプリケーションに取り組んでいます。ビューモデルから来るいくつかのコマンドにKeyGesturesを追加しようとしていますが、できませんでした.それを出します。

私が試したことのいくつか:

1 コード ビハインドから KeyGesture を追加します (ApplicationCommands.Close などの別のコマンドでテストしても):

private KeyGesture _closeGesture = new KeyGesture(Key.E, ModifierKeys.Control);
private KeyBinding _closeBinding;
//...
public MainWindow()
{
   InitializeComponent();
   _closeBinding = new KeyBinding(ApplicationCommands.Close, _closeGesture);
   this.InputBindings.Add(_closeBinding);
}

2 KeyGesture を XAML に直接追加します。

<rcl:RibbonWindow.InputBindings>
    <KeyBinding Command="ApplicationCommands.Close" 
                Key="E" Modifiers="Control" />
</rcl:RibbonWindow.InputBindings>

3 上記のメソッドのいずれかを使用して KeyGesture を追加しますが、それをビューモデルのコマンドにバインドし、さらに KeyGesture を含む RelayCommand を実装します。

私はあなたが私に与えることができるどんな助けにも感謝します.

4

1 に答える 1

0

アプリケーションのコードの下で使用しましたが、xaml コードは次のように正常に動作しています

 <KeyBinding Command="{Binding ExitCommand}"

                    Key="{Binding ExitCommand.GestureKey}"

                    Modifiers="{Binding ExitCommand.GestureModifier}"/>

私のビューモデルで k public ICommand ExitCommand

    {

        get

        {

            if (exitCommand == null)

            {

                exitCommand = new DelegateCommand(Exit);

                exitCommand.GestureKey = Key.X;

                exitCommand.GestureModifier = ModifierKeys.Control;

                exitCommand.MouseGesture = MouseAction.LeftDoubleClick;

            }

            return exitCommand;

        }

    }
 private void Exit()
    {
        Application.Current.Shutdown();
    }
于 2012-10-03T17:28:50.917 に答える