原文: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文件

http://files.cnblogs.com/atskyline/WPFFontDialog.7z

WPF中使用第三方字体选择器的更多相关文章

  1. WPF中取得系统字体列表

    原文:WPF中取得系统字体列表 在GDI+中,我们可以通过如下方式取得系统所有字体: foreach(FontFamily f in FontFamily.Families){   // 处理代码} ...

  2. vue中引入第三方字体图标库iconfont,及iconfont引入彩色图标

    iconfont字体图标使用就不多说了,大致是几部: 1.在iconfont官网选图标,加入购物车,加入项目,下载到本地,解压 2.在项目assets目录新建目录iconfont,用于存放刚才下载解压 ...

  3. [iOS开发] 使用第三方字体不生效

    iOS中使用第三方字体并不复杂,通常只需要如下三个步骤: 1. 将第三方字体文件添加到工程(Project)中: 2. 在info.plist中添加一个新的键"Fonts provided ...

  4. 在android项目中使用FontAwesome字体

    在android项目中使用FontAweSome图标集,可以方便的适配各种屏幕分辨率,不必在各种不同分辨率文件夹中新建资源文件.使用字体是一种很巧妙的方法,把图像以字体的方式呈现,这样以前设置为and ...

  5. 一个简单的WPF字体选择器实现

    很久没有写博客了. 这是放暑假中的第一篇博客,以后会多多更新!!! 这就是我写的一个字体选择器,界面如下: 本程序用到的技术比较简单,仅仅是用了Font类的几个方法和数据绑定而已. 首先建一个四行两列 ...

  6. 2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口

     1 新建一个空项目 A 编写 .pro文件 QT += gui widgets HEADERS += \ MyDialog.h SOURCES += \ MyDialog.cpp B 编写MyD ...

  7. WPF使用第三方字体(TTF字体)

    1.下载第三方字体文件,将以TTF结尾的文件复制到项目中 2.在App.xaml中或者你需要的地方添加资源的定义 <Application.Resources> <FontFamil ...

  8. WPF中应用字体图标

    一.什么是字体图标 我们在进行GDI(图形界面)编程的过程中图标是不可少的.近些年随着网络的繁荣和移动应用的繁荣,矢量图的应用越来越火. 矢量图是一种用数学方法描述的.由一系列点和线组成的图,因此相比 ...

  9. 在WPF中使用FontAwesome图标字体

    原文:在WPF中使用FontAwesome图标字体 版权声明:原创内容转载必须注明出处,否则追究相关责任. https://blog.csdn.net/qq_36663276/article/deta ...

随机推荐

  1. js、Jquery处理自动计算的输入框事件

    js在处理的时候可以使用oninput去获取当前输入框输入的值, jquery的时候使用了keypress和keydown但是发现都不能在输入后触发事件去获取输入框的值,这时候需要使用  ‘input ...

  2. 2.Swift教程翻译系列——Swift概览

    英文版PDF下载地址http://download.csdn.net/detail/tsingheng/7480427 依照传统学习程序语言都是从hello,world開始,在Swfit里面仅仅须要一 ...

  3. LA 3126 出租车

    题目链接:https://vjudge.net/problem/UVALive-3126 题意:有m个客人,位于不同的位置,去一些地方,出发的时间给出,要一些出租车去接,但是,每辆出租车要在出发前一分 ...

  4. STL - priority_queue(优先队列)

    参考:http://www.cnblogs.com/xzxl/p/7266404.html 一.基本定义: 优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素.但是它有一个特性,就是队列中最大 ...

  5. Android学习笔记_46_fragment的简单应用

    Fragments 诞生初衷 http://www.cnblogs.com/TerryBlog/archive/2012/02/17/2355753.html 自从Android 3.0中引入frag ...

  6. AngularJS 使用序号的表格

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  7. android SQLITE的基本使用总结(八)

    sharedPreferences只适合存储比较简单的数据和键值对,支持不同的数据类型 文件存储连键值对都没有,不会进行任何格式化处理,存储简单的二进制或者文本数据 sqlite则能处理一些数据量大, ...

  8. js动画之requestAnimationFrame

    1.setTimeout和setInterval 在讲setTimeout和setInterval之前,先讲一下异步执行的运行机制.(同步执行也是如此,因为它可以被视为没有异步任务的异步执行.) (1 ...

  9. fastRPC的数据库服务

    根据整理的RPC模型,在此上,根据最近的项目,发布了DB服务,操作数据库.以RPC模型,发布数据库的操作服务,主要发送SQL语句,在服务端执行:同时引入了流行的数据库连接池:服务端还发布了文件接收服务 ...

  10. rest_framework --- APIView

    一.什么是rest_framework 它是基于Django的,帮助我们快速开发符合RESTful规范的接口框架. 安装方式有很多种,可以通过pip,或者在pycharm中安装也可以 二.APIVie ...