我正在尝试获取图像的高度,如下所示
BitmapImage bitmap = new BitmapImage(new Uri("Images/header.png",UriKind.RelativeOrAbsolute));
Debug.WriteLine("bitmap.PixelHeight : " + bitmap.PixelHeight);
打印高度为0,但实际图像的高度为35像素。它不是从服务器加载的图像。它存储在应用程序包本身中。
答案 0 :(得分:1)
如果它没有从服务器加载,它仍然可以异步加载和处理。如果您在知道图片可见后使用相同的Debug.WriteLine
来电,是否会产生正确的结果?
答案 1 :(得分:1)
您以后在项目中使用位图吗?如果您在图像中使用它作为源,您可以尝试Image.ActualHeight和Image.ActualWidth
答案 2 :(得分:0)
您必须等待ImageOpened事件才能获得Width / Heigth值。这是因为从URI加载时异步创建BitmapImage(即使文件是本地的)。只有从流中加载它才会同步创建。
另一件需要注意的是BitmapImage.CreateOption默认设置为DelayCreation,这意味着只有在将BitmapImage分配给实时树中的元素时才会创建它。您可以设置CreateOption = None来更改它。