在.NET中将文本渲染为小型大写字母

时间:2015-08-06 13:10:36

标签: c# fonts drawtext

我使用DrawString在C#中将一个字符串绘制成一个更大的图形:

 g.DrawString("Re", new Font("PT Sans Narrow", 35, FontStyle.Bold), Brushes.Black, new Point(5, 0));

现在我想在小型大写字母中绘制文本,因为在许多文字处理器或图形工具中都可以使用...而且我并不是指伪造的小型大写字母,例如"画出比休息更大的第一个字母& #34 ;. 这可能在C#/ .NET中吗?

2 个答案:

答案 0 :(得分:1)

为什么不渲染大写字符串? 如果你需要完全适合echa的字符串,你可以测量渲染字符串的大小,如下所示:

string s1 = "Simple text";
string s2 = "Capitalized text";
Font font1 = new Font("PT Sans Narrow", 35, FontStyle.Bold);
Font font2 = new Font("PT Sans Narrow", 25, FontStyle.Bold);
SizeF size1 = g.MeasureString(s1, font1);
SizeF size2 = g.MeasureString(s2, font2);
Point point1 = new Point(5, 0);
Point point2 = new Point(point1.X + size1.Width, point1.Y + size1.Height - size2.Height);
g.DrawString(s1, font1, Brushes.Black, point1);
g.DrawString(s2.ToUpper(), font2, Brushes.Black, point2);
font1.Dispose();
font2.Dispose();

答案 1 :(得分:0)

如下:

 string output = "Re";
 g.DrawString(output.ToLower(), new Font("PT Sans Narrow", 35, FontStyle.Bold), Brushes.Black, new Point(5, 0));