Die Frage ist einfach, vorausgesetzt, Sie haben eine Form (sagen wir ein Rechteck) und einen Text ("Hallo" zum Beispiel), so wird es den Text alle über die Grenzen des Rechtecks für so viele Male wie es schreiben Beispiel passt für:Wie zeichne ich einen Text in einer Form? C#
hello hello hello hello
hello hello
hello hello
hello hello hello hello
um es zu tun, gehe ich davon aus Sie eine Grafikvariable verwenden müssen, würde, ich weiß nur nicht, wie es zu tun.
Ein Code für eine Zeichenfolge in einem Bitmap-Objekt zeichnen:
Bitmap tempp = new Bitmap(1, 1);
Graphics g = Graphics.FromImage(tempp);
SizeF w = g.MeasureString("22", new Font("Tahoma", 200));//in order to get the size of the string as a pixel measurement
Bitmap bmp = new Bitmap((int)w.Width+1, (int)w.Height+1);//the bitmap that will contain the text as a picture
RectangleF rectf = new RectangleF(0, 0, (int)w.Width+1, (int)w.Height+1);
g = Graphics.FromImage(bmp);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
StringFormat format = new StringFormat()
{
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center
};
g.DrawString("22", new Font("Tahoma", 200), Brushes.Black, rectf, format);
g.Flush();
Vielen Dank im Voraus.
Für zweite Bemerkung:
hello hello hello
hel llo
hel llo
hello hello hello
Sobald Sie die Größe eines Strings-Bild haben, die Gesamtgröße des endgültigen Rechteck berechnen und mehrere String-Bildkopien auf sie setzen, seine jede Kopie in eigene Koordinaten. Vielleicht [dieser Link] (http://stackoverflow.com/questions/1478022/c-sharp-get-a-controls-position-on-a-form) kann Ihnen helfen. –
Was ist mit der Größe des Rechtecks? Was ist, wenn es zu groß ist, um vier "Hallo" in Folge zu haben, aber zu klein, um fünf zu haben. Passen Sie dann die Größe des Rechtecks an? Oder passen Sie den Abstand zwischen den Texten an? – Anthony
@Anthony macht es so: Ich werde den Thread bearbeiten, da ich hier keinen Code anzeigen kann. –