用自定义字体,DrawString出现乱码

VCACC 2014-03-17 09:38:38
自己随便弄了个字体,用richtextbox能正确显示其中的文字和符号。然后自己自定义了一个很简单的控件,直接继承于UserControl。想直接在这个控件上用这个字体draw一行字符串,但其中部分字符老是不对,draw出来后好像换了个字体。比如我字体文件中定义的是个符号“一”,draw出来后显示的确是个“揣”,不知为啥,只是部分字符会这样。

PrivateFontCollection fontCollection = new PrivateFontCollection();
fontCollection.AddFontFile(Path.Combine(Application.StartupPath, @"font1.ttf"));
fontCollection.AddFontFile(Path.Combine(Application.StartupPath, @"font2.ttf"));
m_font1 = new Font(fontCollection.Families[0].Name, 80f, FontStyle.Regular, GraphicsUnit.Pixel);
m_font2 = new Font(fontCollection.Families[1].Name, 80f, FontStyle.Regular, GraphicsUnit.Pixel);
//..........................................................
// ..........................................................
// ..........................................................
//在自定控件的Paint函数里
G.DrawString(strTemp, m_font1 , lg, curLength, 0.0f);
...全文
311 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
VCACC 2014-03-18
  • 打赏
  • 举报
回复
自己up,别沉啊,郁闷好几天了,就是不知原因
VCACC 2014-03-18
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
什么叫“自定义字体”?你自己创建的ttf?
对,我自己建了个ttf文件。用richtextbox空间能完美显示里面的各种字符,就是用drawstring到自定义的控件上时部分字符显示不了,似乎换了字体显示。 不知在哪好像看过说drawstring里面会判断在指定字体的字符集里面有没有给定的字符,如果没有就用默认的其他的字体去显示,不知是否真这样?
threenewbee 2014-03-18
  • 打赏
  • 举报
回复
什么叫“自定义字体”?你自己创建的ttf?
threenewbee 2014-03-18
  • 打赏
  • 举报
回复
new Font("字体名") 看看呢

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧