WPF程序在XP系统运行出错:system.windows.media.fontfamily类型初始值设定项引发异常

出现了TypeInitializationExeption和题目中的这个异常。XP系统是sp3,而且已经装了.NET3.5和4.0,而且都是微软官方原版的。wpf程序如果... 出现了TypeInitializationExeption和题目中的这个异常。
XP系统是sp3,而且已经装了.NET 3.5和4.0,而且都是微软官方原版的。wpf程序如果没有添加任何有文字显示的控件的时候是可以运行的,但是一旦添加了可以有文字显示的控件(也就是控件的属性有FontFamily时),就会在初始化的InitializeComponent()这一步里面出错。提示错误信息为“system.windows.media.fontfamily 的类型初始值设定项引发异常“。
而且生成的程序目标框架为.NET 3.5和4.0都试过了;
我也试过发布出来再安装在XP上(程序必须项也都包含在发布包里了);
生成目标平台为Any Cpu和X86等都试过;
都不行。
PS:程序在WIN7下能正常运行。
展开
 我来答
MyAppleKnows
2013-03-01 · TA获得超过695个赞
知道小有建树答主
回答量:448
采纳率:0%
帮助的人:419万
展开全部
不太清楚你这个异常是怎么引起的,可能是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
追问
还是没能成功,而且装VS2010能成功装上,但是每次打开都会报错“调用目标异常”然後就退出了。
fjkejian
2013-02-28 · 超过85用户采纳过TA的回答
知道小有建树答主
回答量:174
采纳率:0%
帮助的人:177万
展开全部
XP里没有“微软雅黑”的字体库。建议你从WIN7考个安装到XP就可以了。实在麻烦的话。建议你把这个字体库直接引用。把库文件加到你的程序目录下。运行时默认加载这个字体
更多追问追答
追问
我之前也试过把这种字体拷到font目录下了也不行,你说的“建议你把这个字体库直接引用。把库文件加到你的程序目录下。运行时默认加载这个字体”是什麽意思?添加到资源文件?我试了把这个字体添加为资源而且把字体的生成操作选为“编译”,再生成之後还是捕获到了这个异常。
追答
你是点击安装还单单的复制。有没有试过在记事本里也能正常使用这个字体。如果不能就说明你没正确安装。建义你了解一下System.Drawing.Text.PrivateFontCollection这个类的使用就明白我讲什么了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式