Как распечатать панель с картинкой и ярлыками в ней? - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть Panel, в котором ровно 4 графических блока и метки внутри. Я хочу напечатать все содержимое внутри Panel, но оно показывает только два графических блока - в предварительном просмотре.

У меня есть это:

enter image description here

Но это только показывает это (, когда я нажимаю кнопку print ):

enter image description here

Вот мой код для печати:

private void BtnPrint_Click(object sender, EventArgs e)
    {
        Print(this.pnlID);
    }

    public void Print(Panel pnl)
    {
        PrinterSettings ps = new PrinterSettings();
        pnlID = pnl;
        GetPrintArea(pnl);
        prntprvw.Document = printdoc;
        printdoc.PrintPage += new PrintPageEventHandler(printdoc_printpage);
        prntprvw.ShowDialog();

    }

    public void printdoc_printpage(Object sender, PrintPageEventArgs e)
    {
        Rectangle pagearea = e.PageBounds;
        e.Graphics.DrawImage(MemoryImage, (pagearea.Width / 2) - (this.pnlID.Width / 2), this.pnlID.Location.Y);
    }


    Bitmap MemoryImage;
    public void GetPrintArea(Panel pnl)
    {
        MemoryImage = new Bitmap(pnl.Width, pnl.Height);
        //Rectangle rect = new Rectangle(0, 0, pnl.Width, pnl.Height);
        pnl.DrawToBitmap(MemoryImage, new Rectangle(0, 0, pnl.Width, pnl.Height));
    }

Как мне распечатать все содержимое внутри панели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...