我正在尝试在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)
因此,在Grid上我有一个CellAppearance属性,它有一个FonData属性。这个有一个CreateFont方法,我不知道它是为了什么?但我这样做了:
.CellAppearance.FontData.Name = _
.CellAppearance.CreateFont(New Font(pfc.Families(0), Single.))
.CellAppearance.FontData.SizeInPoints = 9
.CellAppearance.FontData.Bold = DefaultableBoolean.False
这对我不起作用。你能给我任何建议吗? 谢谢。
答案 0 :(得分:3)
当您使用CreateFont()方法时,您可以根据特定单元格的FontData设置创建一个Font,但如果要应用自定义字体,则应使用ultraGrid1.Font。例如:
PrivateFontCollection pfc = new PrivateFontCollection();
pfc.AddFontFile("..\\..\\customFont.ttf");
ultraGrid1.Font = new System.Drawing.Font(pfc.Families[0], 12F);
以下是我使用自定义字体测试的屏幕截图: