2012-02-13 2 views
1

Я пишу приложение для Windows-телефона, состоящее из элемента управления поворота, и я хочу изменить фон при переключении между различными элементами поворота. Основываясь на текущей информации о модели текущего элемента, я загружу фон, который соответствует ему.Windows Phone Фоновая проблема с изменением изображения

Теперь то, что я делаю, у меня есть некоторый код в onSelectionChanged обработчике моего контроля поворота:

 if (currentCondition.Contains("a")) 
     { 
      image = new BitmapImage(new Uri("Images/a.jpg", UriKind.Relative)); 
     } 
     else if (currentCondition.Contains("b")) 
     { 
      image = new BitmapImage(new Uri("Images/b", UriKind.Relative)); 
     } 
     ImageBrush ib = new ImageBrush(); 
     ib.ImageSource = image; 
     this.PivotControl.Background = ib; 

Это сделал то, что я хочу, но производительность плохо, когда переключаться между различными элементами поворота, его будет приостановлено примерно на полсекунды для загрузки изображения.

Любое предложение о том, как мне подойти, чтобы решить проблему с производительностью?

Спасибо!

ответ

4

Я не удивлен, что это вызывает проблемы с производительностью, поэтому телефон должен декодировать полноэкранное изображение при каждом изменении фона. Я бы предложил сделать ваш контрольный элемент прозрачным, а затем иметь «стек» изображений позади. Затем вы можете изменить их видимость, чтобы показать/скрыть каждый из них. Например:

<Grid> 
    <Image Source="backgroundOne.jpg" Visibility="Visible"/> 
    <Image Source="backgroundTwo.jpg" Visibility="Collapsed"/> 

    <Pivot> 
    ... 
    </Pivot> 
</Grid> 
+0

Это отлично работает, спасибо! –

Смежные вопросы