2016-05-19 21 views
1

Ich verwende WinForms. In meiner Form habe ich eine Bilderbox und einen Druckknopf. Gibt es eine Möglichkeit, dass die Bilder, die ich in die Bildbox lade, immer in der Mitte des Druckvorschau-Fensters liegen? Das Bild unten zeigt mein Formular und ein Bild in der Druckvorschau, das nicht zentriert ist.Bild in der Seitenansicht zentrieren C#

              enter image description here

                enter image description here

private void Form1_Load(object sender, EventArgs e) 
    { 
     pictureBox1.Image = new Bitmap(@"C:\Users\Nav\Pictures\Test_Image.png"); 
    } 

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
    { 
     e.Graphics.DrawImage(pictureBox1.Image,50,50); 
    } 

    private void Btn_Print_Click(object sender, EventArgs e) 
    { 
     printPreviewDialog1.Document = printDocument1; 
     printPreviewDialog1.ShowDialog(); 
    } 
+1

anstelle von absoluten/festen Koordinaten ('50, 50'), die Berechnung der Mitte – Plutonix

+1

Sie nicht das Bild in der Mitte des Dokuments gezogen haben. Du zeichnest es auf '(50,50)' –

+0

Ich sehe, also ich vermute, es gibt nicht wie ein e.image.center Weg, dies zu tun. – taji01

Antwort

1

Sie nicht das Bild in der Mitte des Dokuments gezogen hat. Sie zeichnen es unter (50,50). Stattdessen können Sie es in der Mitte des Dokuments auf diese Weise ziehen:

e.Graphics.DrawImage(img, 
        (e.PageBounds.Width - img.Width)/2, 
        (e.PageBounds.Height - img.Height)/2, 
        img.Width, 
        img.Height); 
+0

Danke für eine weitere tolle Antwort! :) – taji01

+0

Sie sind herzlich willkommen :) –

Verwandte Themen