WPF中使用第三方字体选择器
起因
到WPF的字体可以设置的东西变得非常的多,而却没有提供专用的字体选择对话框,甚至于WinFrom的FontDialog也是不能直接用来设置WPF中的字体.解决方法是使用第 三方的字体选择器
第三方字体选择器
我在这里介绍两个字体选择器,各有优缺点.
第一个下载地址:http://ovpwp.wordpress.com/2009/05/04/wpf-choose-font-dialog/
下载得到的源码可以把它的ChooseFontDialog项目的输出类型改成类库,并删除App.xaml文件.编译生成ChooseFontDialog.dll
使用方法
在需要使用字体选择器的地方加入ChooseFontDialog.dll的引用,在开头加入using ChooseFontDialog;
具体的使用方案可以参考下面的代码片段
ChooseFont dlg = new ChooseFont(sampleText);
if (dlg.ShowDialog() == true)
{
dlg.ApplyTo(sampleText);
}
它的问题在于,对于中文字体的字体名显示的是英文.
优点在于可以设置颜色,而且启动速度较快
第二个下载地址:http://blogs.msdn.com/b/text/archive/2006/11/01/sample-font-chooser.aspx
使用方法类似,把项目的输出改成类库,删除App.xaml和MainWindow.xaml,生成FontDialogSample.dll.
使用的时候加入引用FontDialogSample.dll,童谣需要加入using FontDialogSample;
以下为使用实例
FontChooser fontChooser = new FontChooser();
fontChooser.Owner = this; fontChooser.SetPropertiesFromObject(textBox);
fontChooser.PreviewSampleText = textBox.SelectedText; if (fontChooser.ShowDialog().Value)
{
fontChooser.ApplyPropertiesToObject(textBox);
}
它的优点就是全面
缺点是第一次调用的时候非常慢,之后再调用会好一些.而且对话框也太大了.
其他问题
这里解决了可以自定义字体的问题.但是我还不清楚要怎么有效的把字体信息写入到我的配置文件里面去. 可能要使用序列化的方法,但是似乎要序列化一整个选择器又显得不是很好.不知道有什么比较好的方案.
DLL下载
最后我提供我在32为系统下用VS2010编译的两个DLL文件
WPF中使用第三方字体选择器的更多相关文章
- WPF中取得系统字体列表
原文:WPF中取得系统字体列表 在GDI+中,我们可以通过如下方式取得系统所有字体: foreach(FontFamily f in FontFamily.Families){ // 处理代码} ...
- vue中引入第三方字体图标库iconfont,及iconfont引入彩色图标
iconfont字体图标使用就不多说了,大致是几部: 1.在iconfont官网选图标,加入购物车,加入项目,下载到本地,解压 2.在项目assets目录新建目录iconfont,用于存放刚才下载解压 ...
- [iOS开发] 使用第三方字体不生效
iOS中使用第三方字体并不复杂,通常只需要如下三个步骤: 1. 将第三方字体文件添加到工程(Project)中: 2. 在info.plist中添加一个新的键"Fonts provided ...
- 在android项目中使用FontAwesome字体
在android项目中使用FontAweSome图标集,可以方便的适配各种屏幕分辨率,不必在各种不同分辨率文件夹中新建资源文件.使用字体是一种很巧妙的方法,把图像以字体的方式呈现,这样以前设置为and ...
- 一个简单的WPF字体选择器实现
很久没有写博客了. 这是放暑假中的第一篇博客,以后会多多更新!!! 这就是我写的一个字体选择器,界面如下: 本程序用到的技术比较简单,仅仅是用了Font类的几个方法和数据绑定而已. 首先建一个四行两列 ...
- 2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口
1 新建一个空项目 A 编写 .pro文件 QT += gui widgets HEADERS += \ MyDialog.h SOURCES += \ MyDialog.cpp B 编写MyD ...
- WPF使用第三方字体(TTF字体)
1.下载第三方字体文件,将以TTF结尾的文件复制到项目中 2.在App.xaml中或者你需要的地方添加资源的定义 <Application.Resources> <FontFamil ...
- WPF中应用字体图标
一.什么是字体图标 我们在进行GDI(图形界面)编程的过程中图标是不可少的.近些年随着网络的繁荣和移动应用的繁荣,矢量图的应用越来越火. 矢量图是一种用数学方法描述的.由一系列点和线组成的图,因此相比 ...
- 在WPF中使用FontAwesome图标字体
原文:在WPF中使用FontAwesome图标字体 版权声明:原创内容转载必须注明出处,否则追究相关责任. https://blog.csdn.net/qq_36663276/article/deta ...
随机推荐
- LAMP环境基本配置
CentOS 7.0 LAMP环境搭建 Apache: 安装: yum -y install httpd 设为开机启动: systemctl start httpd.service systemctl ...
- 设计模式——策略模式(Strategy Pattern)
写在前面: 直接将书中的例子用来作为记录自己学习的成果,不知道这样好不好,如果给原作者带来什么不利的影响不妨告知一声,我及时删掉. UML图: 抽象策略:Strategy package com.cn ...
- 2018.11.30 zsh: command not found: mysql 的解决办法mac环境下
系统环境变量的问题.解决办法: 1.打开终端.输入open .zshrc 会出现一个可编辑文档, 2.找到# User configuration部分,在下一行添加source ~/.bash_pro ...
- javascript之正则表达式基础知识小结
javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...
- 安卓extends和implements
extends是继承类 implements是实现接口
- miniMobile(手机)
官网:http://www.web2014.cn/
- 使用canvas上传图片+上传进度
实现效果: 速度过快,调式浏览器方式:F12 后台java代码 public String imageshangchuan(@RequestPart("xxx") Multipar ...
- 【洛谷P1272】 重建道路
重建道路 题目链接 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟一的.因此, ...
- 【洛谷P2426】删数
删数 题目链接 一道裸的区间DP,f[l][r]表示剩下区间[l,r]时的最大价值 可以由f[1~l-1][r]和f[l][r+1~n]转移过来 详见代码: #include<algorithm ...
- centos7下javac:未找到命令的问题
在linux下编译java程序,执行javac编译生成class文件时,在centos7终端输入如,javac hello.java 会提示未找到指令,但用java -verison测试环境变量 ...