2012-06-08 57 views
2

使用RichTextBox與私人字體我遇到以下問題:我能夠在文本框中使用我的私人字體編寫文本,但是當我選擇它時(需要它在我的程序中更進一步)文本框返回MS Sans Serif as Selection字體。RichTextBox不正確的行爲與私人字體

PrivateFontCollection pfc = new PrivateFontCollection(); // font collection 
pfc.AddFontFile("..\\..\\Fonts\\infotra1.ttf"); // load font 
rtb.Font = new Font(pfc.Families[0], 10.0f, FontStyle.Regular); 
rtb.AppendText("lorem ipsum bla bla bla\n"); 

現在,文本被正確地添加到文本框中。

private void rtb_SelectionChanged(object sender,EventArgs e){0} {0} {0} {var f = rtb.SelectionFont; }

如果我選擇文本和檢查rtb.SelectionFont返回MS無襯線。

我知道系統無法找到我的字體時會返回MS Sans Serif。我應該以某種方式告訴RichTextBox我也在使用我的私人字體嗎?

回答

3

它可能正在按預期工作,但您需要查看f.OriginalFontName而不是f.Name來實現它,因爲您正在使用專用字體。

展望字體文件(http://msdn.microsoft.com/en-us/library/164w6x6z)我發現這一點:

如果familyName參數指定裝不上 機器運行的應用程序或不支持的字體,微軟 無襯線將被替代

+0

謝謝,真的有幫助 –