在我们的 WinRT 应用程序中,我们通过 XAML 为网格和按钮提供了图像作为背景。
我们观察到图像需要很长时间才能加载,应用程序首先只显示其他文本控件(如 TextBlock),然后在一段时间后加载我们的图像。直到我们只在页面中看到文本控件。
我们正在设置背景如下
<ImageBrush ImageSource="ms-appx:////Images/image.png"/>
请告诉我,我们能做些什么来解决这个问题。
谢谢。
在我们的 WinRT 应用程序中,我们通过 XAML 为网格和按钮提供了图像作为背景。
我们观察到图像需要很长时间才能加载,应用程序首先只显示其他文本控件(如 TextBlock),然后在一段时间后加载我们的图像。直到我们只在页面中看到文本控件。
我们正在设置背景如下
<ImageBrush ImageSource="ms-appx:////Images/image.png"/>
请告诉我,我们能做些什么来解决这个问题。
谢谢。
你可以
我有一种预感,如果图像源设置得足够早 - WinRT 会在显示新页面之前等待一小段时间(几分之一秒),以便在图像开始运行过渡动画等之前有机会加载图像。 ,因此完全降低图像分辨率或在加载更高分辨率之前使用较低分辨率是一种方法。
另一种选择是让背景位于根框架之外 - 例如,修改 App.xaml.cs 以将网格作为根视觉对象,并将背景图像和框架放在其中,以便您可以随时更改图像。
这是一种奇怪的行为,但是您可以尝试选择尺寸/分辨率较小的图像来优化渲染时间。
此外,尝试在页面的构造函数中设置背景图像 - 因为,微软可能(我不确定)通过异步操作处理 XAML 解析
而不是ImageBrush
尝试使用Image
将CashMode属性设置为“ BitmapCache ”的常规:
<Grid>
<Image Source="ms-appx:////Images/image.png"
CacheMode="BitmapCache" />
<!-- Your other content above background image -->
</Grid>