【问题标题】:Disable CTRL+P in WPF DocumentViewer在 WPF DocumentViewer 中禁用 CTRL+P
【发布时间】:2013-12-13 23:10:50
【问题描述】:

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

我已经通过 XAML 自定义了所有内容,以使其具有将其完美集成到我们的应用程序中的外观和感觉,但还有一件事......

如果您按下 CTRL+P,打印对话框仍然会出现。我完全不知道如何禁用该功能。此 CC 的用途是允许用户拉起并查看安装在该站点的系统的手册,但我们不希望他们意外打印它们(100 页)。

【问题讨论】:

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


    【解决方案1】:

    将以下代码添加到 DocumentViewer:

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

    【讨论】:

    • 这正是我想要的。谢谢!
    【解决方案2】:

    您总是可以尝试使用如下的 keydown 事件:

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

    【讨论】:

    • 可能需要捕获 PreviewKeyDown 而不是 KeyDown,但两者之一应该可以解决问题。
    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2013-02-18
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多