8

私は超簡単なことをしようとしています:画像のサイズを取得します。

だから私は my を作成しますが、 andBitmapImageにアクセスしようとすると 0 になります。PixelWidthPixelHeight

どうすればそれを達成できますか?

編集:(サンプルコードを追加)

私はちょうどやっています:

var baseUri = new Uri("ms-appx:///");
var bitmapImage = new BitmapImage(new Uri(baseUri, "Assets/Logo.png"));

MyImage.Source = bitmapImage;

Debug.WriteLine("Width: " + bitmapImage.PixelWidth + " Height: " + bitmapImage.PixelHeight);

コンソールでは、次のようになります。

Width: 0 Height: 0
4

2 に答える 2

5

のソースを設定した後に画像のプロパティを使用する場合はBitmapImage、通常、で実行されるイベントハンドラーを作成する必要がありますImageOpened

またImageOpened、イメージがダウンロードされてデコードされた場合(つまり、を使用した場合Image.Source)にのみ発生することにも注意してください。

var bitmapImage = new BitmapImage(uri);
bitmapImage.ImageOpened += (sender, e) => 
{
    Debug.WriteLine("Width: {0}, Height: {1}",
        bitmapImage.PixelWidth, bitmapImage.PixelHeight);
};
image.Source = bitmapImage;
于 2013-03-14T14:12:24.800 に答える
-2

別の方法で初期化を試みることができます。これを試して:

BitmapImage myBitmapImage = new BitmapImage();

// BitmapImage.UriSource must be in a BeginInit/EndInit block
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"C:\pics\Water_Lilies.jpg");
myBitmapImage.EndInit();
int w = myBitmapImage.PixelWidth;
于 2013-03-14T10:24:22.663 に答える