如何获得图像的宽度和高度

时间:2011-03-31 05:56:56

标签: c# xaml silverlight windows-phone-7

我正在尝试获取图像的高度,如下所示

BitmapImage bitmap = new BitmapImage(new Uri("Images/header.png",UriKind.RelativeOrAbsolute));
Debug.WriteLine("bitmap.PixelHeight : " + bitmap.PixelHeight); 

打印高度为0,但实际图像的高度为35像素。它不是从服务器加载的图像。它存储在应用程序包本身中。

3 个答案:

答案 0 :(得分:1)

如果它没有从服务器加载,它仍然可以异步加载和处理。如果您在知道图片可见后使用相同的Debug.WriteLine来电,是否会产生正确的结果?

答案 1 :(得分:1)

您以后在项目中使用位图吗?如果您在图像中使用它作为源,您可以尝试Image.ActualHeight和Image.ActualWidth

答案 2 :(得分:0)

您必须等待ImageOpened事件才能获得Width / Heigth值。这是因为从URI加载时异步创建BitmapImage(即使文件是本地的)。只有从流中加载它才会同步创建。

另一件需要注意的是BitmapImage.CreateOption默认设置为DelayCreation,这意味着只有在将BitmapImage分配给实时树中的元素时才会创建它。您可以设置CreateOption = None来更改它。