富文本框使用私有字体的行为不正确
本文关键字:字体 不正确 文本 | 更新日期: 2023-09-27 18:36:29
使用带有私有字体的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) { var f = RTB。选择字体;}
如果我选择文本并检查 rtb。SelectionFont 它返回 MS Sans Serif。
我知道系统在找不到我的字体时返回MS Sans Serif。我应该以某种方式告诉RichTextBox我也在使用我的私人字体吗?
它可能
按预期工作,但您需要查看f.OriginalFontName
而不是f.Name
才能意识到它,因为您使用的是私有字体。
查看字体文档(http://msdn.microsoft.com/en-us/library/164w6x6z)我发现:
如果 familyName 参数指定了未安装在 上的字体 运行应用程序或不支持的计算机,Microsoft 无衬线将被替换。