将字符串转换为字体

时间:2009-10-06 03:14:56

标签: c# winforms string fonts parsing

我一直在努力为我的问题找到合适的答案。并且花了很多天在网上和文档中搜索,却一无所获。

我有一个包含大量文本的文本文件。在文件中的其中一行中将包含一些像这样的字体信息:

宋体,12.5,经常

请注意,字体信息并不总是具有相同的字体名称,大小或样式,所以我不能手动设置它。

当这个文件打开到我的应用程序时,它将解析内容(我已经覆盖了大部分),我只需要一些帮助将上面的字体字符串转换为实际的字体对象,然后将该字体分配给控件,即标签等...

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

您需要使用Font class。假设您使用String.Split()将文本解析为数组,您将需要获取数组的每个部分并将其用于create a Font object,如:

string s = "Tahoma,12.5,Regular";
string[] fi = s.Split(',');
Font font = new Font(fi[0], fi[1],fi[2]);

我在这台Mac上没有C#编译器,所以它可能不完全正确。

示例构造函数:

public Font(
string familyName,
float emSize,
FontStyle style
)

在这里,您需要将第二个参数指定为float,因此将字符串转换为浮点数:

(float)fi[1]

接下来,您需要根据fi 2的内容查找FontStyle:

   if (fi[2] == "Regular") {
      // set font style
   }