2010-06-09 7 views
3

Je travaille sur un nouveau composant de présentation pour l'une de nos applications. Je construis un contrôle WPF personnalisé qui a juste un DocumentViewer et héberge ce CC dans une application Windows Forms avec un ElementHost. J'utilise Visual Studio 2008 avec C#.Désactiver CTRL + P dans WPF DocumentViewer

Je mesure tout par le XAML pour lui donner l'apparence que l'intègre perfectionnant dans notre application, mais une chose reste ...

Si vous appuyez sur CTRL + P la boîte de dialogue d'impression se heurte encore. Je suis à une perte complète quant à la façon de désactiver cette fonction. L'utilisation de ce CC est de permettre aux utilisateurs de tirer vers le haut et d'afficher les manuels pour les systèmes installés sur ce site, mais nous ne voulons pas qu'ils impriment accidentellement (100s de pages).

Répondre

6

Ajoutez le code suivant à la DocumentViewer:

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

C'est exactement ce que je cherchais. JE VOUS REMERCIE! – Groupal

2

Vous pouvez toujours essayer de consommer l'événement KeyDown comme ce qui suit:

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

Il pourrait être nécessaire de piéger PreviewKeyDown plutôt que KeyDown, mais l'un des deux devrait faire l'affaire. – Andy