富文本框使用私有字体的行为不正确

本文关键字:字体 不正确 文本 | 更新日期: 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 无衬线将被替换