2013-02-22 77 views
3

在我们的WinRT应用程序中,我们通过XAML提供了图像作为网格和按钮的背景。花费很长时间加载WinRT XAML的图片

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

我们正在设置背景如下

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

请让我知道,我们能做些什么来解决这个问题。

谢谢。

回答

0

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

另外,尽量设置背景图片在页面的构造 - 因为,微软可能(我不知道虽然)通过异步操作处理XAML解析

1

可以

  • 降低的分辨率图像
  • 等待它向你展示页面之前加载 - 要么通过启动较早莫名其妙或显示网页完全是黑色的,并说,在当图像加载
  • 使用较低分辨率图像或其他衰落设置图像加载到
  • 并不

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

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

+0

其实网格背景图像的大小1.5 MB,它是在分辨率,覆盖整个装置1366×768屏幕并作为我的页面的背景。因此,如果我更改分辨率,则需要较长的时间才能加载,如果我们对其进行拉伸,则显示效果不佳。 – 2013-02-22 09:16:23

+0

背景图片经常被冲掉,在这种情况下,较低的分辨率并不那么令人震惊,但您有其他工具可以修复它。 – 2013-02-22 14:30:43

0

而不是ImageBrush尝试使用普通ImageCashMode属性设置为“BitmapCache”:

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

    <!-- Your other content above background image --> 
</Grid> 
相关问题