Autor Beitrag
Throex93
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 27.03.12 14:08 
Hallo Leute,

ich habe mich in der Hoffung zu euch gewand, dass ihr mir bei meinem kleinen Problem helfen könntet.
Ich habe Koordinatensystem:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
        private void Koordinatensystem(Graphics g) 
        {
            g.SmoothingMode = SmoothingMode.AntiAlias;
            g.DrawLine(Pens.Black, 20, pbzeichnen.Height - 20, pbzeichnen.Width - 20, pbzeichnen.Height - 20);
            g.DrawLine(Pens.Black, 20, pbzeichnen.Height - 202020);
            //Pfeil y
            g.DrawLine(Pens.Black, 20201535);
            g.DrawLine(Pens.Black, 20202535);
            g.DrawString("Test"this.Font, Brushes.Green, 2010);
            //Pfeil x
            g.DrawLine(Pens.Black, pbzeichnen.Width - 37, pbzeichnen.Height - 26, pbzeichnen.Width - 20, pbzeichnen.Height - 21);
            g.DrawLine(Pens.Black, pbzeichnen.Width - 37, pbzeichnen.Height - 13, pbzeichnen.Width - 20, pbzeichnen.Height - 21);
            
            //Striche an der xAchse
            for (int i = 20; i < pbzeichnen.Width-40; i+=15)
            {
                g.DrawLine(Pens.Black, i, pbzeichnen.Height-20, i, pbzeichnen.Height-28);
            }
            //Zahlen der xAchse
            for (int i = 1; i < 11; i++) 
            {
                
            }

            //Striche an der yAchse
            for (int i = pbzeichnen.Height - 35; i > 35; i -= 15
            {
                g.DrawLine(Pens.Black, 20, i, 28, i );
            }
                     
        }

so dieses packe ich auch gleich mal in ein printdocument rein:

ausblenden C#-Quelltext
1:
2:
3:
4:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
{            
    Koordinatensystem(e.Graphics);
}

nur mein problem ist jetzt wenn ich die Windowsform görßer oder kleiner Ziehe macht er das Graphicselement auch jeweils größer / kleiner(auf dem PrintDocument), wenn ich die Form über den komplette Bildschirm habe will er auch dem entsprechent auch ein riesen blatt ausdrucken !?!?!?!

Könntet ihr mir vieleicht sagen wie ich es hin bekomme, dass das Printdocument immer die größe eines A4 blattes hat und man auch alles darauf sieht.

Schon einmal vielen Dank und einen Lieben gruß Throex93

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 27.03.12 15:15 
Hallo Throex93 :welcome:

was ist pbzeichnen denn? Eine PictureBox?
Du solltest der Methode Koordinatensystem(...) die Breite und Höhe als Parameter mitgeben (bzw. noch besser als Rectangle), so daß du diese von deiner Paint-Methode und der Print-Methode unterschiedliche Parameter mitgeben kannst.
Mittels PrintPageEventArgs.MarginBounds (bzw. PrintPageEventArgs.PageBounds) erhältst du dann den Seitenbereich.

P.S. Anstatt auf einer PictureBox (welche eigentlich nur zum Anzeigen von fixen Bildern dient) zeichne besser direkt auf der Form oder auf einem Panel.