2

使用带有私有字体的 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");

现在,文本已正确附加到文本框中。

私人无效rtb_SelectionChanged(对象发件人,EventArgs e){ var f = rtb.SelectionFont; }

如果我选择文本并检查 rtb.SelectionFont 它会返回 MS Sans Serif。

我知道系统在找不到我的字体时会返回 MS Sans Serif。我是否应该以某种方式告诉 RichTextBox 我也在使用我的私人字体?

4

1 回答 1

3

它可能按预期工作,但您需要查看f.OriginalFontName而不是f.Name意识到它,因为您使用的是私有字体。

查看字体文档(http://msdn.microsoft.com/en-us/library/164w6x6z)我发现了这个:

如果 familyName 参数指定的字体未安装在运行应用程序的机器上或不受支持,则将替换为 Microsoft Sans Serif

于 2012-06-08T12:13:38.300 回答