C# printing with WPF

前端 未结 4 1768
囚心锁ツ
囚心锁ツ 2021-01-15 04:30

My application prints (to a printer) the information shown on screen (using the Canvas control) N times.

The process is

The user clicks a button (called Pri

4条回答
  •  南笙
    南笙 (楼主)
    2021-01-15 05:06

    The answer (sorry the code is not exactly the same as the question but it's so simple it should be easy to follow. Thank you every one.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using System.Windows.Threading;
    
    
    namespace WpfApplication1
    {
        /// 
        /// Interaction logic for MainWindow.xaml
        /// 
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                for (int i = 0; i < 2; i++)
                {
                result res = null;     
                if (i == 0)
                res = new result { Comments = "First Time Round" };
    
                if (i == 1)
                    res = new result { Comments = "Total hard type" };
    
                Dispatcher.Invoke(DispatcherPriority.Loaded, new Action(delegate
                    {   
                        this.DataContext = res;
                    }
                ));
    
                System.Threading.Thread.Sleep(500);
    
                Dispatcher.Invoke(DispatcherPriority.Loaded, new Action(delegate
                {
                    PrintDialog dialog = new PrintDialog();
                    dialog.PrintVisual(this.canvas1, "");
                }
            ));
                System.Threading.Thread.Sleep(500);
    
                }
            }
        }
    
        class result
        {
            public string Comments { get; set; }
        }
    }
    

提交回复
热议问题