在WPF DocumentViewer中禁用CTRL + P.

时间:2010-06-09 17:28:52

标签: c# wpf visual-studio-2008 xaml documentviewer

我正在为我们的某个应用程序开发一个新的演示组件。我正在构建一个自定义WPF控件,其中只有一个DocumentViewer,并在带有ElementHost的Windows窗体应用程序中托管该CC。我正在使用Visual Studio 2008和C#。

我已经通过XAML对所有内容进行了定制,使其外观和感觉能够完美地融入到我们的应用程序中,但有一件事仍然存在......

如果按CTRL + P,打印对话框仍会出现。我完全失去了如何禁用该功能。使用此CC是为了允许用户提取并查看该站点上安装的系统的手册,但我们不希望他们意外地打印它们(100页)。

2 个答案:

答案 0 :(得分:6)

将以下代码添加到DocumentViewer:

    <DocumentViewer.InputBindings>
        <KeyBinding Key="P" Modifiers="Control" Command="ApplicationCommands.NotACommand" />
    </DocumentViewer.InputBindings>

答案 1 :(得分:2)

您可以随时尝试使用keydown事件,如下所示:

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