3

私は、アプリケーションの 1 つの新しいプレゼンテーション コンポーネントに取り組んでいます。DocumentViewer だけを含むカスタム WPF コントロールを構築し、ElementHost を使用して Windows フォーム アプリケーションでその CC をホストしています。C# で Visual Studio 2008 を使用しています。

XAML を介してすべてをカスタマイズして、アプリケーションに完全に統合されるルック アンド フィールを提供しましたが、1 つ残っています...

CTRL+P を押すと、印刷ダイアログが表示されます。その機能を無効にする方法について、私は完全に途方に暮れています。この CC の用途は、ユーザーがそのサイトにインストールされているシステムのマニュアルをプルアップして表示できるようにすることですが、ユーザーが誤ってそれらを印刷 (数百ページ) することは望ましくありません。

4

2 に答える 2

6

次のコードを DocumentViewer に追加します。

    <DocumentViewer.InputBindings>
        <KeyBinding Key="P" Modifiers="Control" Command="ApplicationCommands.NotACommand" />
    </DocumentViewer.InputBindings>
于 2010-06-09T18:39:09.440 に答える
2

次のように、いつでも keydown イベントの消費を試みることができます。

private void Window_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.P && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
        {
            e.Handled = true; 
        }
    }
于 2010-06-09T17:42:07.387 に答える