3

理解できない...

BitmapImage img = new BitmapImage(myUri);
Console.WriteLine("Width: {0}, Height: {1}", img.Width, img.Height);

出力:「幅:1、高さ:1」。

PixelWidth / PixelHeightを試しましたが、BeginInit/を使用して手動で作成し、EndInit設定も試みましたPreservePixelFormat...何も機能しません。

(ただし、さらに奇妙なことに、これはすべて、ユーザーがボタンをクリックして一部の画像がダウンロードされるプロセスの一部です。2回目にそのボタンがクリックされると、幅/高さが1以外になります。

4

1 に答える 1

4

ユーザーが最初にボタンをクリックしたとき、ビットマップはまだダウンロードされていません。そのため、ビットマップを使って何かを行うと、ガベージ結果が発生します (画像コントロールがこれを処理する方法を知っているため、表示を除く)。

BitmapImage.DownloadCompleted イベントを処理して、ビットマップがいつ利用可能になるかを知ることができます。

于 2008-10-26T15:20:08.940 に答える