11

Windows 7 OS で正常に動作する WPF アプリケーションがあります。しかし、特定の少数の Windows XP マシンで同じアプリがクラッシュします。

いくつかの Windows XP マシンで問題なく動作します。しかし、いくつかの XP マシンでは起動に失敗します。

エラー - 画像形式が認識されません。

この質問が何度か聞かれたことは知っています。しかし、私の問題は、これを解決する方法がまだわからないことです。

アプリケーションの使用を変更する必要がありますか.ico..

4

5 に答える 5

10

残念ながら、Windows Vista、7、8 以降で大きなアイコン サイズをサポートしたい場合、単純に 256x256 アプリケーションを削除することは最善の解決策ではありません。

この問題を解決するもう 1 つの方法は、アイコン内の 256x256 の画像を圧縮しないことです。詳細については、このフォーラム スレッドを参照してください。

どうやってそれを行うのですか?ほとんどのアイコン ユーティリティには、これに対するオプションがあります (これはよくある問題です)。私はIcoFXを使用しており、下にクリアする必要のあるオプション (赤で強調表示) が表示されています。

IcoFX スクリーンショット

于 2013-11-14T17:54:52.897 に答える
7

私は今朝、この問題を少し楽しんでいました。カラー設定が 16 ビットに設定されている XP マシンでのみエラーが発生していたことが判明し、32 ビットに変更すると、問題は魔法のように消えました。

これは XP (Embedded を含む) SP3 に当てはまります。

于 2014-06-11T07:31:37.060 に答える
3

WPF アプリケーションでは、アイコンを設定する場所が少なくとも 2 つあります。

  1. アプリケーション アイコン。これは、エクスプローラー、デスクトップなどでアプリケーションを表示するために使用されます。これは、プロジェクトのプロパティで設定します。
  2. ウィンドウのアイコン。これは、ウィンドウの左上隅のアイコンとして使用され、おそらく alt-tab キーとタスクバーで使用されます。これは、ウィンドウの Icon プロパティとして設定します。

多くの場合、どちらの場合も同じアイコン ファイルを使用できます。ただし、圧縮された 256x256 アイコンをウィンドウ アイコンとして使用すると、Windows XP でクラッシュする可能性があります。これがあなたが経験していることです。一方、アプリケーション アイコンに圧縮された 256x256 アイコンがある場合、これは当てはまりません。

したがって、別の解決策 (私がすべてのプロジェクトで実装したもの) は、2 つのアイコンを使用することです: アプリケーション アイコン (すべてのサイズを含む) と、16x16 と 32x32 のサイズのみを含む特別な「ウィンドウ アイコン」バージョン (これらは唯一のものであるため)使用サイズ)。

于 2013-11-15T11:09:11.307 に答える
3

私の記憶が正しければ、Windows XP は48x48 pixelsこれよりも大きいアイコンをサポートしていないため、クラッシュの原因になっている可能性があります。.icoファイルは両方のシステムで確実に実行する必要があります。

複数のサイズをサポートするアイコンを作成できるので、同じファイルに 48x48 と、たとえば 256x256 を追加すれば問題ありません。また、複数のサイズをサポートするアイコンを作成する場合は、アイコンを作成するための適切なソフトウェアを選択してください。Greenfish Icon Editorを使用しましたが、これは問題なく動作すると思います。しかし、これには他にも多数の製品があります。

The ICON handbook のセクション Windowsを必ず読んでください。使用するアイコンのサイズとビット深度に関する適切な情報が含まれています。


SO の他のスレッドは、私の信念をサポートしています。

アイコン画像の問題

Windows アプリケーションのアイコンに含めるべきアイコンのサイズはどれですか?

于 2012-09-12T09:42:43.657 に答える
1

(16/32 ビットの解像度の問題) に対する別の回避策は、XAML でアイコンを定義するのではなく、コードで読み込むことです。

 this.Icon = new BitmapImage(new Uri("pack://application:,,,/UserInterface;component/Resources/Icons/ReportViewer.ico"));
于 2014-12-22T15:30:28.310 に答える