2009-10-06 72 views
1

我一直在努力为自己的问题找到正确的答案。并且花费了无数天在线搜索和文档搜索,并且一无所获。将字符串转换为字体

我有一个文本文件,其中包含一堆文本。并在文件中的线路之一将包含一些像这样的字体信息:

宋体,12.5例行

注意,字体信息并不总是具有相同的字体名称,大小或样式这样我就可以不要手动设置它。这个文件打开到我的应用程序,它将解析内容(我已经主要覆盖),我只需要一些帮助将上述字体字符串转换成实际的字体对象,然后将该字体分配给控件,即标签等...

有人可以帮我这个吗?

+0

为什么会创建一个重复的问题? – shahkalpesh

+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] 

接下来,你需要查找基于FontStyle关于什么fi 2是:

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

谢谢你brianly - 我有2个错误,虽然我不太确定他们的意思到底。第一个说: 参数'2':不能从'字符串'转换为'浮动'..第二个说: 参数'3':不能从'字符串'转换为'System.Drawing.FontStyle' .. –

+0

您需要查看我为Font构造函数链接的文档。我的例子有太多争论。找到一个与你想传入的参数相匹配的构造函数。 –

+0

谢谢BrianLy,我真的很感谢你帮助我。我仍然有同样的问题,但觉得我越来越接近我想要达到的目标。 +1 –