Windows Phone背景图像更改性能问题

时间:2012-02-13 08:26:58

标签: windows-phone-7.1 windows-phone-7

我正在编写一个由数据透视控件组成的Windows手机应用程序,我想在不同的数据透视表项之间切换时更改背景。根据当前枢轴项的视图模型信息,我将加载与其匹配的背景。

现在我正在做的是我在我的枢轴控制的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;

这样做了我想要的但性能不好,当我在不同的枢轴项目之间切换时,它会暂停大约半秒钟来加载图像。

关于如何解决性能问题的任何建议?

谢谢!

1 个答案:

答案 0 :(得分:4)

我不会感到惊讶,这会导致性能问题,每次更改背景时手机都必须解码全屏图像。我建议让你的枢轴控制透明,然后有一堆“图像”。然后,您可以更改其可见性以显示/隐藏每个可见性。例如:

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

  <Pivot>
    ...
  </Pivot>
</Grid>