[C#]从外部文件引入字体文件并显示到控件
2013-03-03 14:36
162 查看
看来我对字体方面的了解还是不够多啊。
从网上找了段代码,本以为拷里头就完事呢,结果发现到加载字体文件都没问题,这些我在VB6时代都干过。
但是当我打算把该字体应用到程序时,却自动变回了系统默认字体。
这表示我没有给予正确的参数。好吧我承认我不知道那应该是什么!
………………
好吧,从网上找来的代码永远是那么的不靠谱!
经我仔细的思索,我认为他把从文件加载的字体名称代入到建立字体对象的参数中,不是一个正确的做法。
因为程序很可能尝试从系统安装的字体中寻找它,当然是找不到的,从而改用默认字体替代。
于是,我重新定义了需要的[FontFamily]对象,使用从外部字体文件引入时的对象为参数,而不是名称的字符串,这次没问题了,字体终于变了。
最后我把异常扔出也改了,否则我可能早就看到是哪里出了错误!!!
最后有点小问题的是FontStyle这个枚举。
有的字体很特殊,居然不支持默认的 Regular 样式,我试了粗体和斜体一样不成功。
好吧,我不知道该写什么了,我放弃使用那个字体了。
从网上找了段代码,本以为拷里头就完事呢,结果发现到加载字体文件都没问题,这些我在VB6时代都干过。
但是当我打算把该字体应用到程序时,却自动变回了系统默认字体。
这表示我没有给予正确的参数。好吧我承认我不知道那应该是什么!
………………
好吧,从网上找来的代码永远是那么的不靠谱!
经我仔细的思索,我认为他把从文件加载的字体名称代入到建立字体对象的参数中,不是一个正确的做法。
因为程序很可能尝试从系统安装的字体中寻找它,当然是找不到的,从而改用默认字体替代。
于是,我重新定义了需要的[FontFamily]对象,使用从外部字体文件引入时的对象为参数,而不是名称的字符串,这次没问题了,字体终于变了。
最后我把异常扔出也改了,否则我可能早就看到是哪里出了错误!!!
//********************************************** // 添加命名空间引用 //********************************************** using System.Drawing.Text; //********************************************** //自定义模块:从外部字体文件加载字体样式到程序。 //********************************************** public void Setfont() { string AppPath = Application.StartupPath; try { //从外部文件加载字体文件 PrivateFontCollection font = new PrivateFontCollection(); font.AddFontFile(AppPath + @"\DigitalFonts\DS-DIGI.TTF"); //定义成新的字体对象 FontFamily myFontFamily = new FontFamily(font.Families[0].Name, font); Font myFont = new Font(myFontFamily,56F,FontStyle.Regular); //将字体显示到控件 label1.Font = myFont; } catch (InvalidCastException e) { MessageBox.Show(e.Message.ToString(), "异常:", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } //********************************************** // 引用方法 //********************************************** public Form1() { InitializeComponent(); Setfont();//启动字体设置函数 }
最后有点小问题的是FontStyle这个枚举。
有的字体很特殊,居然不支持默认的 Regular 样式,我试了粗体和斜体一样不成功。
好吧,我不知道该写什么了,我放弃使用那个字体了。
相关文章推荐
- Bootstrap—解决引入本地Bootstrap文件字体图标无法显示问题
- C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标(转)
- C# dbf文件在dataGirdView控件中显示方法
- c#执行bat批处理文件,并通过线程将结果显示在控件中
- c# winform项目treeview控件绑定本地电脑磁盘信息,读取文件夹信息,显示文件夹内文件内容
- 本地Bootstrap文件字体图标引入却无法显示问题的解决方法
- C# 系统应用之TreeView控件显示树状磁盘文件目录及加载图标
- c# 将日志文件显示在WebBrowser控件中 分类: .NET 2012-12-18 16:03 781人阅读 评论(0) 收藏
- [Flex]解决引入OSX.css后控件字体显示不出来的问题!
- c# 将日志文件显示在WebBrowser控件中
- C# 引用外部字体文件
- WinForm控件分享之文件信息显示控件【c#源码】
- 引入外部字体文件进行设置
- C#模板引擎 RazorEngine3.7的扩展 — 引入外部文件
- WinForm控件分享之文件信息显示控件【c#源码】
- C# 系统应用之TreeView控件显示树状磁盘文件目录及加载图标
- 【C# 基础】— 解决 "winForm 引用 Adobe PDF Reader控件不显示pdf 文件" 问题
- 在Yii中解决引入本地Bootstrap文件字体图标无法显示问题
- C# 系统应用之TreeView控件 (一).显示树状磁盘文件目录及加载图标