1

私がやっていることはかなり標準的だと思います。リソースで GetManifestResourceStream を呼び出し、.ico ファイルへのパスを指定して、埋め込みリソースからいくつかの画像を作成します。

Bitmap bmp = new Bitmap(Assembly.GetEntryAssembly().GetManifestResourceStream("MeterView.Resources.unlocked.ico"));

次に、ビットマップを使用してフォームに画像を表示します。これは常に Windows 7 および 8 で完全に機能していましたが、XP SP3 ボックスでアプリを実行しようとすると、ストリームをビットマップに変換する行に「無効なパラメーター」が表示されます。Image.FromStream も使用してみましたが、結果は同じでした。

リソースのビルド アクションは、埋め込みリソースに設定されます。この問題を回避する方法を知っている人はいますか? ストリームのリセットも試しましたが、違いはありませんでした。

ご提案いただきありがとうございます。

アイコン ファイルは、Visual Basic で XP 用に作成された、このアプリケーションの元のバージョンのものです。それらはVBで手動で生成されたと思います。このアプリケーションを C# で書き直すために、これらのアイコンをすべて再利用しました。私が問題に遭遇したのはこれが初めてです。

4

1 に答える 1

0

Thanks for all the suggestions. I did try breaking up the code into individual lines, and it was in fact the creation of the bitmap from the stream. Failed on several different XP systems, all running SP3 with the .NET 4 framework installed.

Converting the original ico files to png files and then converting them to bitmap works, with no noticeable loss of quality in the images.

于 2012-12-28T18:44:25.190 に答える