2009-10-06 74 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 –