2010-06-09 4 views
1

Im en utilisant un System.Windows.Controls.PrintDialog pour permettre à l'utilisateur d'imprimer une ou plusieurs pages à partir de mon application. Voilà ce que je suis actuellement:Activer "Page actuelle" dans PrintDialog

 PrintDialog printDialog = new PrintDialog(); 

     printDialog.PageRangeSelection = PageRangeSelection.AllPages; 
     printDialog.UserPageRangeEnabled = true; 

     if (printDialog.ShowDialog() == true) 
     { 
      // do print ... 
     } 

Im la recherche de l'option pour activer le courant Page bouton radio dans la boîte de dialogue. Comment l'activer?

+0

Peut-être que c'est une limite de WPF? WindowsForms PrindDialog possède la propriété AllowCurrentPage. –

+0

Oui, je recherche la contrepartie directe de la propriété System.Windows.Forms.PrintDialog.AllowCurrentPage. Je ne pense pas que c'est une limitation de WPF, pourquoi garderaient-ils le radiobutton? On dirait que d'autres parties de la boîte de dialogue ont changé. – Mizipzor

+0

Je pense que WPF PrintDialog n'utilise que le dialogue d'impression standard de Windows et ne vous donne pas d'API pour les propriétés de changement de ce radiobutton. –

Répondre

0

Si vous décompilez la référence PresentationFramework.dll par Reflector vous pourrez voir que cette classe n'a rien à propos de CurrentPage. Je pense que ce radiobutton est désactivé par défaut dans Win32PrintDialog. Dans ce WinForms RadioButton est définitivement désactivé par défaut:

[DefaultValue(false), SRDescription(SR.PDallowCurrentPageDescr)] 
    public bool AllowCurrentPage { 
     get { return allowCurrentPage;} 
     set { allowCurrentPage = value;} 
    } 

Je suppose que vous ne pouvez pas activer ce bouton radio, mais je peux me tromper.

+0

On dirait que la meilleure solution est de faire mon propre dialogue alors. Merci. – Mizipzor

Questions connexes