3

在我们的 WinRT 应用程序中,我们通过 XAML 为网格和按钮提供了图像作为背景。

我们观察到图像需要很长时间才能加载,应用程序首先只显示其他文本控件(如 TextBlock),然后在一段时间后加载我们的图像。直到我们只在页面中看到文本控件。

我们正在设置背景如下

<ImageBrush ImageSource="ms-appx:////Images/image.png"/>

请告诉我,我们能做些什么来解决这个问题。

谢谢。

4

3 回答 3

1

你可以

  • 降低图像的分辨率
  • 在显示页面之前等待它加载 - 通过以某种方式更早地启动它或通过将页面完全显示为黑色,例如,在图像加载时淡入
  • 使用较低分辨率的图像或其他资源,直到图像加载
  • 根本不使用该图像

我有一种预感,如果图像源设置得足够早 - WinRT 会在显示新页面之前等待一小段时间(几分之一秒),以便在图像开始运行过渡动画等之前有机会加载图像。 ,因此完全降低图像分辨率或在加载更高分辨率之前使用较低分辨率是一种方法。

另一种选择是让背景位于根框架之外 - 例如,修改 App.xaml.cs 以将网格作为根视觉对象,并将背景图像和框架放在其中,以便您可以随时更改图像。

于 2013-02-22T06:56:18.690 回答
0

这是一种奇怪的行为,但是您可以尝试选择尺寸/分辨率较小的图像来优化渲染时间。

此外,尝试在页面的构造函数中设置背景图像 - 因为,微软可能(我不确定)通过异步操作处理 XAML 解析

于 2013-02-22T06:56:16.863 回答
0

而不是ImageBrush尝试使用ImageCashMode属性设置为“ BitmapCache ”的常规:

<Grid>
    <Image Source="ms-appx:////Images/image.png"
           CacheMode="BitmapCache" />

    <!-- Your other content above background image -->
</Grid>
于 2016-06-09T23:15:08.947 回答