我计划在WP7中为每个页面使用背景图像,而不是保持背景透明 我需要注意哪些建议或问题?
另外,我注意到CacheMode
属性
如果每个页面在整个页面上具有相同的背景,我可以使用它来提高性能吗?
答案 0 :(得分:7)
2个步骤:
(1)
在 <phone:PhoneApplicationPage
设置 shell:SystemTray.IsVisible =“False”
(2)
<Grid x:Name="LayoutRoot">
<Grid.Background>
<ImageBrush ImageSource="Assets/Images/Flowers.png"></ImageBrush>
</Grid.Background>
答案 1 :(得分:5)
您可以创建一个尺寸为完整显示的图像控件,并将其他控件放在它前面。
如果有理由希望重新绘制此控件,则位图缓存将为您节省重复光栅化控件的开销。
答案 2 :(得分:1)
你可以把它放在Phone ApplicationFrame上,而不是把它放在每个页面上:然后只加载一次......
答案 3 :(得分:0)
您应该注意几个性能问题:
1)确保将大图像编译为Content
而不是Resources
。编译为Resource
会将图像构建到二进制可执行文件本身,这使得在启动时加载到内存中会大得多。
Jeff Wilcox:
如果你正在使用Panorama,那就是资源 背景将立即加载 与内容相比
2)除非你真的需要透明度,否则使用.jpg文件而不是.png。 .jpg解码算法明显快于.png。但请注意压缩。一旦在内存中解压缩,磁盘上的微小图像会占用更多内存。