我正在尝试做一件超级简单的事:获取图像的大小。
所以我创建了BitmapImage
,但当我尝试访问PixelWidth
和PixelHeight
时,我收到0。
我怎么能做到这一点呢?
编辑:(添加示例代码)
我正在做:
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
答案 0 :(得分:4)
如果要在为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;
答案 1 :(得分:-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;