2016-03-29 8 views
0

Я сам пытался решить это, но пока не понял. Я хочу открыть диалоговое окно печати, когда я нажимаю кнопку btn_print. Я вызвал одну строку, которую, как я полагаю, больше не нужен, поскольку это определяет размер печатной страницы.Реализовать диалог печати в моем коде

Может ли кто-нибудь взглянуть на мой код и рассказать мне, что я могу сделать?

private void btn_print_Click(object sender, RoutedEventArgs e) 
    { 
     try 
     { 
      PrintDocument pd = new PrintDocument(); 
      //pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1169); 
      pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage); 
      pd.Print(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("An error occurred while printing", ex.ToString()); 
     } 
    } 

    private void pd_PrintPage(object sender, PrintPageEventArgs e) 
    { 

    } 
+0

хорошо, что не работает? –

+0

https://msdn.microsoft.com/en-us/library/system.drawing.printing.printdocument(v=vs.90).aspx – Tdorno

+0

Он работает @roryap, но это просто печать на принтере по умолчанию без открытие диалогового окна печати. Я хочу добавить эту функцию в этот код. –

ответ

0

попробовать что-то вроде этого:

PrintDocument pd = new PrintDocument(); 
//pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1169); 
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage); 

System.Windows.Forms.PrintDialog p = new System.Windows.Forms.PrintDialog(); 
p.Document = pd; 
if (p.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
    pd.Print(); 
+0

Это не сработало @ J.H. , Пространство имен System.Windows.Forms не существует и probalby принадлежит Windows Forms? Я удалил пространство имен в коде, и я получаю сообщение об ошибке, что printdialog не содержит определения для документа и 'bool?' не содержит определения для OK. –

+0

Добавьте ссылку на System.Windows.Forms и она будет работать. –

+0

Он был уверен! Я думаю, что мне не хватало этой ссылки, когда я пробовал другие вещи. Большое спасибо @ J.H.! –