1
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");

            }
        }
4

2 に答える 2

1

コードで dialog.ShowDialog() を呼び出さないでください。

于 2012-10-31T14:21:21.237 に答える
1

PrintDialog電話をしなくても使えShowDialog()ます...現在設定されているプリンター設定は、電話をかけるとそのまま使用されますPrintVisual

より洗練された処理を行うには、PrintTicket.

詳細については、こちらを参照してください。

于 2012-10-31T12:40:04.693 に答える