我正在编写一个由数据透视控件组成的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;
这样做了我想要的但性能不好,当我在不同的枢轴项目之间切换时,它会暂停大约半秒钟来加载图像。
关于如何解决性能问题的任何建议?
谢谢!
答案 0 :(得分:4)
我不会感到惊讶,这会导致性能问题,每次更改背景时手机都必须解码全屏图像。我建议让你的枢轴控制透明,然后有一堆“图像”。然后,您可以更改其可见性以显示/隐藏每个可见性。例如:
<Grid>
<Image Source="backgroundOne.jpg" Visibility="Visible"/>
<Image Source="backgroundTwo.jpg" Visibility="Collapsed"/>
<Pivot>
...
</Pivot>
</Grid>