這個問題很簡單,假設你有一個形狀(可以說是一個矩形)和一個文本(例如「hello」),所以它會將文本全部寫入矩形的邊界,適合,例如:如何在形狀中繪製文字? C#
hello hello hello hello
hello hello
hello hello
hello hello hello hello
爲了做到這一點我假設你需要使用圖形變量,我只是不知道該怎麼做。
一種用於在一個位圖對象繪製的字符串的代碼:
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();
預先感謝。
對於第二點意見:
hello hello hello
hel llo
hel llo
hello hello hello
一旦你有一個字符串,圖像的大小,計算最終的矩形的總規模,並把幾個字符串映像副本,那麼,每一個副本在其自己的座標。也許[這個鏈接](http://stackoverflow.com/questions/1478022/c-sharp-get-a-controls-position-on-a-form)可以幫助你。 –
矩形的大小如何?如果連續有四個「你好」太大,而五個太小則太大。你是否調整矩形的大小?或者你調整文本之間的間距? – Anthony
@Anthony像這樣做:我會編輯線程,因爲我不能在這裏顯示代碼。 –