Dot-Net
在矩形內填充文本
我正在使用 GDI+ 在 Graphics 對像上繪製一個字元串。
我希望字元串適合預定義的矩形(不破壞任何線條)
除了在循環中使用 TextRenderer.MeasureString() 直到返回所需的大小之外,還有其他方法嗎?
就像是:
DrawScaledString(Graphics g, string myString, Rectangle rect)
您可以使用 ScaleTransform
string testString = @"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse et nisl adipiscing nisl adipiscing ultricies in ac lacus. Vivamus malesuada eros at est egestas varius tincidunt libero porttitor. Pellentesque sollicitudin egestas augue, ac commodo felis ultricies sit amet."; Bitmap bmp = new Bitmap(300, 300); using (var graphics = Graphics.FromImage(bmp)) { graphics.FillRectangle(Brushes.White, graphics.ClipBounds); var stringSize = graphics.MeasureString(testString, this.Font); var scale = bmp.Width / stringSize.Width; if (scale < 1) { graphics.ScaleTransform(scale, scale); } graphics.DrawString(testString, this.Font, Brushes.Black, new PointF()); } bmp.Save("lorem.png", System.Drawing.Imaging.ImageFormat.Png);但是你可能會得到一些別名效果。
編輯:
但是,如果您想更改字型大小,我想您可以
scale在上面的程式碼中更改字型大小,而不是使用縮放變換。嘗試兩者並比較結果的質量。
