2012-01-23 46 views
13

我們有一個C#WPF項目(.NET 4.0,Visual Studio 2010)。它已經在Windows XP和Windows 7上進行了測試,似乎運行良好,但現在我收到了來自該領域的兩名客戶(都出於某種原因在西班牙)無法啓動軟件的報告。「圖像格式無法識別」取決於顯示器

查看日誌文件我看到他們得到「圖像格式無法識別」異常(由HRESULT引發的異常:0x88982F07)。

我對錯誤進行了搜索,我發現這似乎是WPF無法加載Windows XP上的Vista PNG圖標。但這些報告已經有幾年了,毫無疑問,微軟現在已經解決了這個問題(?),在我的情況下,它在大多數XP安裝中都能正常工作。我真的不想限制更新的Windows上的圖標外觀。

我們的應用程序最常見的用途是在筆記本電腦上,其中一位用戶報告說,當他將筆記本電腦連接到外部顯示器時,問題得到解決。當我問另一個人測試同樣的事情時,他得到了同樣的結果。

所以我的問題是:你知道這個問題是否已經被Microsoft解決?你知道爲什麼它只發生在一些Windows XP實例上,以及它如何與監視器相關嗎?最重要的是,您是否知道我可以做些什麼來使我們的應用程序在不更改圖標的情況下更加健壯?

+6

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/9e723d51-0e26-4609-8fe1-5e0edcf7385b/似乎表明,如果它會自行解決你不會壓縮圖標。 –

+0

感謝您的提示,我會測試一下。我已經創建了沒有壓縮的圖標,圖標文件的大小增加了5倍,但這些日子不是問題(除非有一個未壓縮的圖標還有其他缺點?)。 – Christoffer

+0

除了我知道的尺寸外,沒有任何缺點。 –

回答

2

今天,我出現了相同的錯誤,出於藍色,只在我的開發機器上。 WPF的實現似乎仍然是越野車。

如果我明白這一點(article)的權利,它可以發生在任何地方ICO文件被讀取。在我的情況是,而在XAML中設置一個圖標的主應用程序窗口:

<Window x:Class="MyApp.MainWindow" Icon="Dashboard.ico" > 

上面的代碼突然失敗了,但使用PNG文件解決了這個問題:

<Window x:Class="MyApp.MainWindow" Icon="Dashboard.png" > 
0

我有這個問題今天早上有點有趣。事實證明,錯誤只發生在XP機器上,顏色設置設置爲16位,當我將其更改爲32位時,問題奇蹟般地消失了。

這適用於XP(包括嵌入式)SP3。

0

這個問題讓我拉我的頭髮很長一段時間,我花了很長時間試圖找出發生了什麼,所以我會分享我的結論,因爲它可能有助於其他人(甚至可能我自己在未來):

https://social.msdn.microsoft.com/Forums/vstudio/en-US/9e723d51-0e26-4609-8fe1-5e0edcf7385b/setting-windowicon-to-vista-256x256-png-icon-causes-a-fileformatexception?forum=wpf 似乎表明它」如果你沒有壓縮圖標,會自行解決。 - 約阿希姆·伊薩克森在1月23日12:44 '12

所以我在icoFx擡頭(即我用我的圖標編輯)果然:

options window in icoFx

我只是取消了這個選項,並再次保存了我的.ico文件(大小從30Kb增加到286Kb!)!

問題解決