使用RichTextBox和私有字体我遇到了以下问题:我能够在文本框中使用我的私有字体编写文本,但是当我选择它时(在我的程序中需要它)文本框将MS Sans Serif作为选择返回字体 .
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)
如果我选择文本并检查rtb.SelectionFont,则返回MS Sans Serif .
我知道当系统无法找到我的字体时,系统会返回MS Sans Serif . 我应该以某种方式告诉RichTextBox我还使用我的私人字体吗?
1 回答
它可能按预期工作,但你需要查看
f.OriginalFontName
而不是f.Name
来实现它,因为你使用的是私有字体 .查看字体文档(http://msdn.microsoft.com/en-us/library/164w6x6z)我发现了这个: