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)