1: WPF不支持直接实例化TTF文件。TTF 字体需要先安装到系统中。(想让程序自动装TTF请看这里http://blog.csdn.net/nickwar/article/details/5174259)
2:然后把装好的字体名称放入资源中。
3:参考我给出的代码设置FontFamily属性:
。。。。。。。。。。。。。。。。。。
public MainWindow(){
InitializeComponent()
FontFamily family=GetFontFamily("Your installed TTF font name")
this.FontFamily = family ?? this.FontFamily
}
private FontFamily GetFontFamily(String resourceKey)
{
if (String.IsNullOrEmpty(resourceKey))
{
return null
}
FontFamily fontFamily = null
Object ttfName = this.TryFindResource(resourceKey)
if (ttfName != null)
{
fontFamily = new FontFamily(ttfName.ToString())
}
return fontFamily
}
。。。。。。。。。。。。。。。。。。。
不太清楚你这个异常是怎么引起的,可能是XP中缺少字体的原因吧。1. 你可以把缺少的字体,安装到XP上,不过看你意思似乎不行。
2. 动态加载字体,即把字体打包到你的程序中,这样不管对方电脑有没有这种字体,都可以跑你的程序了。示例:
在你项目的resources目录中加入Pericles Light字体
myTextBlock.FontFamily = new FontFamily(new Uri("pack://application:,,,/"), "./resources/#Pericles Light")
当然你也可以在XAML中动态加载字体。
更详细的说明见MSDN:http://msdn.microsoft.com/zh-cn/library/ms653301%28v=vs.100%29.aspx
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)