我有一个带全景图的简单页面和一个必须更改全景背景图片的按钮。最初的图片是1200x800。 如果我使用资源中的图片,一切都很好:
Uri uri = new Uri("Resources/Panorama.png", UriKind.Relative);
var bitmap2 = new BitmapImage(uri);
// here from debugging: bitmap2.CreateOptions == DelayCreation, bitmap2.PixelWidth == 0 and bitmap2.PixelHeight == 0
var lcBrush2 = new ImageBrush() {
Stretch = Stretch.Fill,
ImageSource = bitmap2
};
panoMain.Background = lcBrush2;
但如果我从隔离存储中拍照:
var picStream = ...getting a stream of file....;
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(picStream);
// here from debugging: bitmap.PixelWidth == 1200 and bitmap.PixelHeight == 800
var lcBrush = new ImageBrush() {
Stretch = Stretch.Fill,
ImageSource = bitmap
};
panoMain.Background = lcBrush;
然后图片缩小到480x800
我做错了什么?或者它是来自MS的错误?
答案 0 :(得分:1)
看起来像this is a bug。该线程的一个解决方法是:
我找到的一种解决方法是在中设置“默认”背景图像 XAML具有所需的大小。如果我这样做,那么更新 我的MainPage_Loaded事件中的背景属性,新图像显示为 与默认图像大小相同。
在该主题的底部还有另一个使用代码的解决方法。