1

画像コンポーネントのソースをBitmapImageに設定しようとしています。

しかし

Uri newUri = new Uri("images/" + filename, UriKind.Relative);
Image newImage = new Image();
BitmapImage bmp = new BitmapImage(newUri);
newImage.Source = bmp;

ただし、画像が画面よりも小さい場合は、画面いっぱいに拡大縮小されます。

幅と高さを次のように設定してみました。

  newImage.Height = bmp.PixelHeight;
   newImage.Width = bmp.PixelWidth;

ただし、BitmapImageは幅と高さの値をゼロにします。これはまだ「ロード」されていないためだと思いますか?

これを強制して正しい値を与えるか、少なくともImageコンポーネントをビットマップのサイズにのみ「ラップ」させるにはどうすればよいですか。

私の画像はすべて、画面にぴったりのピクセルサイズです。

ありがとう

4

1 に答える 1

2

ビットマップは、実際に読み込まれるまでPixelHeightとPixelWidthを認識しません。そのため、ゼロになります。ただし、幅と高さを手動で設定するのではなく、StretchプロパティをNoneに設定するだけで、画像は常に元のサイズになります。

注:レイアウトの一部としてピクセルパーフェクト画像を使用している場合は、横向きへの向きの変更に対応していることを確認してください:)

于 2011-04-15T16:10:20.003 に答える