Панорама сжимает фоновое изображение из изолированного хранилища - PullRequest
1 голос
/ 03 ноября 2011

У меня есть простая страница с панорамой и кнопкой, которая должна изменить фоновое изображение панорамы. Изначально картинка 1200х800. Если я использую картинку из ресурсов, все в порядке:

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?

1 Ответ

1 голос
/ 03 ноября 2011

Похоже, это ошибка . Один обходной путь из этой темы:

Один из найденных мной обходных путей - установить фоновое изображение по умолчанию в XAML, который имеет желаемый размер. Если я сделаю это, то обновите Свойство Background в моем событии MainPage_Loaded новое изображение отображается как тот же размер, что и изображение по умолчанию.

Внизу этого потока есть другой обходной путь с кодом.

...