/// <inheritdoc/> public override void Draw(FRPaintEventArgs e) { if (IsDesigning) { return; } Graphics g = e.Graphics; RectangleF pageRect = new RectangleF(0, 0, WidthInPixels - 1 / e.ScaleX, HeightInPixels - 1 / e.ScaleY); RectangleF printableRect = new RectangleF( LeftMargin * Units.Millimeters, TopMargin * Units.Millimeters, (PaperWidth - LeftMargin - RightMargin) * Units.Millimeters, (PaperHeight - TopMargin - BottomMargin) * Units.Millimeters); DrawBackground(e, pageRect); Border.Draw(e, printableRect); if (Watermark.Enabled) { if (!Watermark.ShowImageOnTop) { Watermark.DrawImage(e, pageRect, Report, IsPrinting); } if (!Watermark.ShowTextOnTop) { Watermark.DrawText(e, pageRect, Report, IsPrinting); } } float leftMargin = (int)Math.Round(LeftMargin * Units.Millimeters * e.ScaleX); float topMargin = (int)Math.Round(TopMargin * Units.Millimeters * e.ScaleY); g.TranslateTransform(leftMargin, topMargin); try { foreach (Base c in AllObjects) { if (c is ReportComponentBase && c.HasFlag(Flags.CanDraw)) { ReportComponentBase obj = c as ReportComponentBase; if (!IsPrinting) { #if !MONO if (!obj.IsVisible(e)) { continue; } #endif } else { if (!obj.Printable) { continue; } else if (obj.Parent is BandBase && !(obj.Parent as BandBase).Printable) { continue; } } obj.SetDesigning(false); obj.SetPrinting(IsPrinting); obj.Draw(e); obj.SetPrinting(false); } } } finally { g.TranslateTransform(-leftMargin, -topMargin); } if (Watermark.Enabled) { if (Watermark.ShowImageOnTop) { Watermark.DrawImage(e, pageRect, Report, IsPrinting); } if (Watermark.ShowTextOnTop) { Watermark.DrawText(e, pageRect, Report, IsPrinting); } } }