Использование WPF ContextMenu (Shift-щелчок правой кнопкой мыши) - PullRequest
4 голосов
/ 22 марта 2011

У меня есть вопрос с "ContextMenu" в WPF. Есть ли способ вызвать всплывающее контекстное меню, только если был выполнен «Shift-щелчок правой кнопкой мыши»? Я искал повсюду для этого. Кажется, что ContextMenu может появиться только после щелчка правой кнопкой мыши.

У кого-нибудь есть идеи?

1 Ответ

6 голосов
/ 22 марта 2011

Попробуйте это .... свойства вашего контекстного меню XAML должны выглядеть следующим образом ...

<ElementToWhichContextMenuIsAttached ContextMenu="{StaticResource MyContextMenu}"
                                     ContextMenuOpening="MyContextMenuOpening"/>

И ваш код будет выглядеть так.

    /// <summary>
    /// This will suppress the context menu if the shift key is not pressed
    /// </summary>
    private void MyContextMenuOpening(object sender, ContextMenuEventArgs e)
    {
        // Show context menu as handled if no key is down.
        e.Handled = !(Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift));
    }
...