2011-12-03 57 views
4

2つのボタンを持つフォームがあります。ImageListから取得した画像は、リソースから直接取り出した画像とは異なって見えます

私は、VSのプロパティエディタ(Import...ボタンを使用)からImageプロパティを設定して、イメージ(16 x 16,32ビット深度png)を割り当てました。

また、私はプロパティ・エディタからも最初のボタンに同じ画像を割り当てするImageList(16×16 ImageSizeDepth32BitColorDepth)は - >Images、次いでAddを。それから私は私の第二ボタンにこの道このイメージを割り当て:

button2.Image = imageList.Images[0]; 

をそして、これは(実際のサイズ2×)の画像がどのように見えるかです:

enter image description here

は私の第二のボタンを持っていることは可能ですImageListを使って私の最初のように見える? ImageListを使用する理由は、パフォーマンスをチェックするときに、リソースからイメージをロードしたコード行がVSのパフォーマンスウィザードに従ってホットスポットだったからです。

私のアプリケーションにはコントロールのリストがあり、それぞれのコントロールには画像付きのボタンがたくさんあるので、できるだけ早く読み込むようにします。だから私は持っている静的なImageListこれらのコントロールのそれぞれの画像を取得するからです。

+0

これは16x16画像ではなく、少なくとも32x32です。文書化されたImageList.ColorDepthも間違っている可能性があり、色の欠落を説明することができます。 –

+1

@HansPassant:これはWindowsがダブルクリックしたときに表示されるものです - > Properties - > Details。私のイメージは実際のサイズの2倍です。 – Juan

+0

何が間違っていたか把握しましたか?私は同じ問題を抱えている。 – tunafish24

答えて

3

これは、Imagelistで追加したイメージのColorDepthが、ImageListプロパティで設定したColorDepthよりも高いためです。たとえば、追加した画像がPNG形式の場合は、PNG形式で32ビットの色深度を使用するため、ImageListのColorDepth(プロパティウィンドウ内)をDepth32Bitに設定する必要があります。

+0

私の 'ImageList'は32ビットの色深度に設定されています。 "私はImageListも持っています(16 x 16 ImageSizeと" Depth32Bit "ColorDepth') – Juan

+1

これは私のために働いた、ありがとう。 – stuzor

関連する問題