2011-12-03 13 views
1

ListViewViewのプロパティがLargeIconに設定されています。そして私はListViewの画像ソースとしてImageListを持っています。WinForms:異なる画像サイズのListViewのImageList

私が欲しいのはListViewの両方で、垂直および水平方向を向いた画像を表示することですが、私は150x100にそのプロパティを設定し、垂直方向の画像を追加する場合、例えばのでImageListは、そのコレクション内のすべての画像(100x150)にのみ単一のプロパティImageSizeを持っていますコレクションに - ListViewは自動的に150x100に伸ばします。

私が理解するように、すべての画像が元のサイズで保存されているImageListが必要です。どのようにそれを行うにはどのような考え? ありがとうございます。

答えて

0

私はこの問題を自分で抱いていました。これは私がやったことですが、それはあなたにも役立つことを願っています。まず、200x200などの最大画像サイズを決めてからPngまたはGif画像(200x200)透明な背景を持つ。

私は例として作成したこれら2つの画像を見ています。

this is the original 64x64 image file

が、私はストレッチを避けるために、このようにそれを作る:

this is the 200x200 image file that have lots of transparent area

+0

ええ、私はそれについて考えましたが、それは私にはかなり醜い解決策と思われました..しかし、私はここで多くのchoiseしていないようです:)とにかくおかげで。 – Slippy

+0

@AshkanMobayenKhiabaでこれを手伝ってもらえますか?http://stackoverflow.com/questions/13206339/listview-with-multiple-imagelist-and-icons-image – Smith

0

あなたは、クロス乗算を使用することができますストレッチから保つために。コードで

Image Width  Desired Width 
--------------- = --------------- 
    Image Height  New Height 

または

Image Width  New Width 
--------------- = --------------- 
Image Height  Desired Height 

それがこの

int height = img.Width*newWidth/image.Height; 

または

int height = img.Width/image.Height*newWidth; 

のようになります新しいビットマップを作成するときに

または

int width = img.Height/image.Width*newHeight; 

その後、所望のサイズおよび派生サイズを使用して新しいビットマップにスケーリングされた画像を描画することができます。

関連する問題