1

我正在尝试在 UltraWinGrid 中使用自定义 TTF 字体。我创建了一个 PrivateFontCollection 实例,然后我将我的字体资源添加到了这个实例中

pfc = New PrivateFontCollection
Dim fonMemPointer As IntPtr = _
    Marshal.AllocCoTaskMem(My.Resources.FontAwesome.Length)
Marshal.Copy(My.Resources.FontAwesome, _
             0, _
             fonMemPointer, My.Resources.FontAwesome.Length)

pfc.AddMemoryFont(fonMemPointer, My.Resources.FontAwesome.Length)

所以,在网格上我有一个 CellAppearance 属性,它有一个 FonData 属性。这个有一个 CreateFont 方法,我不知道它是干什么用的?但我这样做了:

.CellAppearance.FontData.Name = _
                 .CellAppearance.CreateFont(New Font(pfc.Families(0), Single.))
.CellAppearance.FontData.SizeInPoints = 9
.CellAppearance.FontData.Bold = DefaultableBoolean.False

这对我不起作用。你能给我什么建议吗?谢谢你。

4

1 回答 1

3

当您使用 CreateFont() 方法时,您可以根据特定单元格的 FontData 设置创建一个字体,但如果您想应用您的自定义字体,您应该使用 ultraGrid1.Font。例如:

PrivateFontCollection pfc = new PrivateFontCollection();
pfc.AddFontFile("..\\..\\customFont.ttf");
ultraGrid1.Font = new System.Drawing.Font(pfc.Families[0], 12F);

这是我使用自定义字体测试的屏幕截图:

在此处输入图像描述

于 2013-06-20T10:07:15.263 回答