XSDDiagram.Rendering.DiagramPrinter.OnPrintPage C# (CSharp) Méthode

OnPrintPage() private méthode

private OnPrintPage ( object sender, System.Drawing.Printing.PrintPageEventArgs e ) : void
sender object
e System.Drawing.Printing.PrintPageEventArgs
Résultat void
        private void OnPrintPage(object sender, PrintPageEventArgs e)
        {
            Graphics graphics = e.Graphics;

            SmoothingMode enumSmooth       = graphics.SmoothingMode;
            TextRenderingHint enumHint     = graphics.TextRenderingHint;
            CompositingQuality enumQuality = graphics.CompositingQuality;

            graphics.SmoothingMode      = SmoothingMode.HighQuality;
            graphics.TextRenderingHint  = TextRenderingHint.AntiAlias;
            graphics.CompositingQuality = CompositingQuality.HighQuality;

            _diagram.Layout(graphics);

            Size bbSize = _diagram.BoundingBox.Size + _diagram.Padding + _diagram.Padding;
            Size totalSize = new Size((int)(bbSize.Width * _diagram.Scale), (int)(bbSize.Height * _diagram.Scale));

            int columnNumber = 1 + totalSize.Width / e.MarginBounds.Width;
            int rowNumber = 1 + totalSize.Height / e.MarginBounds.Height;
            int pageNumber = columnNumber * rowNumber;

            int row, column = Math.DivRem(_currentPage, rowNumber, out row);

            Rectangle clipping = new Rectangle(new Point(column * e.MarginBounds.Width, row * e.MarginBounds.Height),
                new Size((column + 1) * e.MarginBounds.Width, (row + 1) * e.MarginBounds.Height));

            graphics.Clip = new Region(e.MarginBounds);

            //Point virtualPoint = this.panelDiagram.VirtualPoint;
            graphics.TranslateTransform(-(float)(clipping.Left - e.MarginBounds.Left),
                -(float)(clipping.Top - e.MarginBounds.Top));

            DiagramGdiRenderer.Draw(_diagram, graphics, clipping);

            if (_currentPage < pageNumber - 1)
            {
                _currentPage++;
                e.HasMorePages = true;
            }

            graphics.SmoothingMode      = enumSmooth;
            graphics.TextRenderingHint  = enumHint;
            graphics.CompositingQuality = enumQuality;
        }