我有一个字体家族名称和该家族中特定字符的索引。
示例:我的字体家族为“ Wingdings 2”,索引号为33。如果转到http://www.alanwood.net/demos/wingdings-2.html,然后查看第一个项(索引号为33),则该字符为圆珠笔。
我的问题是,如何在C#中检索字符本身?我需要在应用程序中绘制此字符。
我已经遍历了Font和FontFamily类的所有方法和属性,但是我看不到有什么可以帮助的。
编辑:我知道如何使用图形对象绘制字符,实际上,问题是首先只知道字体家族和给定字体家族中的字符索引来检索字符。
答案 0 :(得分:1)
要绘制字符,可以使用以下代码段:
public static Image DawTextFromFontFamily(string text, FontFamily family, Color textColor, Color backColor)
{
return DrawText(text, new Font(family, 16), textColor, backColor);
}
public static Image DrawText(String text, Font font, Color textColor, Color backColor)
{
//first, create a dummy bitmap just to get a graphics object
Image img = new Bitmap(1, 1);
Graphics drawing = Graphics.FromImage(img);
//measure the string to see how big the image needs to be
SizeF textSize = drawing.MeasureString(text, font);
//free up the dummy image and old graphics object
img.Dispose();
drawing.Dispose();
//create a new image of the right size
img = new Bitmap((int)textSize.Width, (int)textSize.Height);
drawing = Graphics.FromImage(img);
//paint the background
drawing.Clear(backColor);
//create a brush for the text
Brush textBrush = new SolidBrush(textColor);
drawing.DrawString(text, font, textBrush, 0, 0);
drawing.Save();
textBrush.Dispose();
drawing.Dispose();
return img;
}
现在,您可以使用所需的字体显示具有任何字符的图像