如何打印而不在WPF中显示打印弹出窗口

时间:2012-10-31 06:55:50

标签: wpf

private void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog dialog = new PrintDialog();
            if (dialog.ShowDialog() == true)
            {
                StackPanel stpanel;
                stpanel = PrintStakPanel;
                stpanel.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
                Size grdSize = stpanel.DesiredSize;
                Point grdPoint = new Point((dialog.PrintableAreaWidth - grdSize.Width) / 2, (dialog.PrintableAreaHeight - grdSize.Height) / 2);
                stpanel.Arrange(new Rect(grdPoint, grdSize));
                Grid.SetRow(stpanel, 0);
                dialog.PrintVisual(stpanel, "Cinema Ticket");

            }
        }

2 个答案:

答案 0 :(得分:1)

您可以在不PrintDialog电话的情况下使用ShowDialog() ....当您拨打PrintVisual时,只会使用当前设置的打印机设置。

要执行更复杂的操作,您可以使用PrintTicket以编程方式定义打印机设置。

请点击此处了解更多详情:

答案 1 :(得分:1)

不要在代码中调用dialog.ShowDialog()。