WPF在Windows XP下的一个兼容问题

来源:互联网 发布:java基础入门课后笔记 编辑:程序博客网 时间:2024/05/16 15:30

问题描述

开发平台:Windows7(64位)+VS2010,C#,WPF应用程序

目标平台:Windows XP(32位)+sp3+dotNet Framework 4

细节:利用VS2010开发的WPF应用程序,利用Visual Studio Installer部署到Windows XP中无法运行。运行程序显示遇到问题需要关闭,利用调试器发现如下图所示的错误:在“System.Windows.Baml2006.TypeConverterMarkupExtension”上提供值时引发了异常。

详细信息如下图所示:

问题原因

根据调试器的异常信息,图像格式无法识别,判断是XAML中图片方面的原因。但将工程中所有的图片删除后问题照旧。工程中唯一的图片就是图标了,应该就是图标方面的原因。将XAML中窗口的Icon属性去掉,使用默认图标,这次运行正常。经试验验证,发现原因是XP系统中不支持256*256png格式的图标,若将窗口的Icon属性设为256*256的大图标,就会发生此问题。

解决方法

确保图标的格式满足兼容要求:用VS2010的编辑ico文件,将其中的256*256png格式的内容全部删除,只保留bmp格式的内容,现在最大尺寸的是48*48。

另外一个不用编辑原图标方法是去掉所有窗口的Icon属性,而在工程属性中指定程序的默认图标。不过这样一来,程序中所有的窗口都使用同一个图标。

看来窗口的Icon是由XAML负责加载,而程序的默认图标由系统Shell加载。

 

 

原创粉丝点击