Отключить CTRL + P в WPF DocumentViewer - PullRequest
3 голосов
/ 09 июня 2010

Я работаю над новым компонентом презентации для одного из наших приложений.Я создаю пользовательский элемент управления WPF, в котором есть только DocumentViewer, и размещаю этот CC в приложении Windows Forms с ElementHost.Я использую Visual Studio 2008 с C #.

Я настроил все через XAML, чтобы он выглядел и чувствовал, как он интегрируется в наше приложение, но остается одна вещь ...

Если вы нажмете CTRL + P, диалоговое окно печати все равно появится.Я в полной растерянности относительно того, как отключить эту функцию.Использование этого CC позволяет пользователям загружать и просматривать Руководства для систем, установленных на этом сайте, но мы не хотим, чтобы они случайно распечатывали их (100 страниц).

Ответы [ 2 ]

6 голосов
/ 09 июня 2010

Добавьте следующий код в DocumentViewer:

    <DocumentViewer.InputBindings>
        <KeyBinding Key="P" Modifiers="Control" Command="ApplicationCommands.NotACommand" />
    </DocumentViewer.InputBindings>
2 голосов
/ 09 июня 2010

Вы всегда можете попробовать использовать событие keydown следующим образом:

private void Window_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.P && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
        {
            e.Handled = true; 
        }
    }
...