1

ListViewwithViewプロパティをに設定していLargeIconます。そして、私はのImageList画像ソースとして持っていListViewます。

私が欲しいのは、垂直方向と水平方向の両方の画像を表示することですがListView、コレクション内のすべての画像に対してImageList単一のプロパティしかないImageSizeため、たとえば、そのプロパティを150x100に設定し、垂直方向の画像(100x150)をコレクションに追加すると、ListView自動的に150x100。

ですから、私が理解しているようImageListに、すべての画像が元のサイズで保存されているものが必要です。それを行う方法について何か考えはありますか?前もって感謝します。

4

2 に答える 2

0

私は自分でこの問題を抱えていました。これが私がやったことです。それがあなたにも役立つことを願っています。最初に使用する最大の画像サイズ(たとえば 200x200)を決定し、次に背景が透明な Png または Gif 画像(すべて 200x200)を使用します。

例として作成したこれらの 2 つの画像を見てください。

これは元の 64x64 画像ファイルです

しかし、ストレッチを避けるために次のようにします。

これは、透明な領域がたくさんある 200x200 の画像ファイルです。

于 2011-12-03T19:35:41.423 に答える
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*newHeight/image.Width;

また

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

次に、新しいビットマップを作成するときに、目的のサイズと派生サイズを使用して、新しいビットマップにスケーリングされた画像を描画できます。

于 2014-11-05T06:48:31.777 に答える