WPF печатает несколько пользовательских элементов управления с PrintVisual () - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь напечатать 3 пользовательских элемента управления. В коде позади страницы xaml у меня есть такой код


        private void Print_Button_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            PrintBitmapSource(RenderVisaulToBitmap(this, 816, 1057));
        }

При нажатии кнопки я хочу напечатать 3 страницы формата А4, но экспортируется только одна, как и ожидалось. это - контрольная форма в коде позади.

        public RenderTargetBitmap RenderVisaulToBitmap(Visual vsual, int width, int height)
        {
            RenderTargetBitmap rtb = new RenderTargetBitmap
                (width, height, 96, 96, PixelFormats.Default);
            rtb.Render(vsual);

            BitmapSource bsource = rtb;
            return rtb;
        }
        private void PrintBitmapSource(BitmapSource inBms)
        {
            var pd = new PrintDialog();
            var ret = pd.ShowDialog();
            if (ret.Value)
            {
                var dv = new DrawingVisual();
                using (var dc = dv.RenderOpen())
                {
                    dc.DrawImage(inBms, new Rect(0, 0, inBms.Width, inBms.Height));
                }

                pd.PrintQueue.Refresh();

                while (pd.PrintQueue.NumberOfJobs != 0)
                {
                    bool isQueued = false;
                    foreach (var job in pd.PrintQueue.GetPrintJobInfoCollection())
                    {
                        if (job.Name == "Print Car Setup")
                            isQueued = true;
                    }

                    if (!isQueued)
                        break;

                    Thread.Sleep(500);
                    pd.PrintQueue.Refresh();
                }

                pd.PrintVisual(dv, "Print Car Setup");
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...