Laden...

Schrift auch beim Verändern der Fensterposition in der Mitte anzeigen

Erstellt von Ramires vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.044 Views
R
Ramires Themenstarter:in
5 Beiträge seit 2018
vor 5 Jahren
Schrift auch beim Verändern der Fensterposition in der Mitte anzeigen

Hallo!

Mein derzeitiger Code :

const string SchriftMitte = "Times New Roman";
const int SchriftGradMitte = 18;

System.Drawing.SizeF Platzbedarf;
float X;
float Y;



// Die "Entwickler Teil 1" Schrift
            using (var Schriftmitte = new System.Drawing.Font(SchriftMitte, SchriftGradMitte))
            {
                Platzbedarf = g.MeasureString(Properties.Resources.BegrüßungErsteZeile, Schriftmitte);

                 
                // Das Problem
                Y = r.Top; // 
                X = r.Left + (r.Width - Platzbedarf.Width) / 2;

                g.DrawString(Properties.Resources.BegrüßungErsteZeile, Schriftmitte,
                    System.Drawing.Brushes.Black, X, Y);

Ich hatte es zwar schon mal in der Mitte jedoch verschwand die Schrift wenn ich das Fenster in Y vergrößerte.

Bin gespannt auf eure Antworten!
lg

5.658 Beiträge seit 2006
vor 5 Jahren

Wenn du uns sagst, welches Problem du lösen möchtest, und evtl. deinen Code noch etwas formatierst, dann können wir dir sicherlich auch weiterhelfen.

Siehe dazu [Hinweis] Wie poste ich richtig?, besonders Punkt 5 und 6

Weeks of programming can save you hours of planning

R
Ramires Themenstarter:in
5 Beiträge seit 2018
vor 5 Jahren

 // Die "Entwickler Teil 1" Schrift
            using (var Schriftmitte = new System.Drawing.Font(SchriftMitte, SchriftGradMitte))
            {
                Platzbedarf = g.MeasureString(Properties.Resources.BegrüßungErsteZeile, Schriftmitte);

// Y ist das Problem. Wenn ich z.b 100 noch in Y dazurechne, wird sie angezeigt
//aber beim verändern der Fenstergröße verschwindet sie wieder.
                Y = (r.Top + r.Height) / 2; 
                X = r.Left + (r.Width - Platzbedarf.Width) / 2;

                g.DrawString(Properties.Resources.BegrüßungErsteZeile, Schriftmitte,
                    System.Drawing.Brushes.Black, X, Y);

            }

Die Schrift soll genau in der Mitte des r = rectangle ( Rechteckes) angezeigt werden, auch beim Verändern der
Fensterposition.

4.939 Beiträge seit 2008
vor 5 Jahren

Auf welchem Control zeichnest du denn? Und auch korrekt im OnPaint, s.a. [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox) ?

Edit: Und was ist r bei deinem Code?
Bedenke auch, daß die Positionen (X, Y) immer relativ zum aktuellen Control anzugeben sind.

R
Ramires Themenstarter:in
5 Beiträge seit 2018
vor 5 Jahren

Danke für den Link 😃

es wird auf g.graphics gezeichnet und nicht auf einem controll.

r ist das System.Drawing.Rectangle