【问题标题】:Preload background image on XAML Page在 XAML 页面上预加载背景图像
【发布时间】:2014-04-12 11:05:54
【问题描述】:

我正在使用 C# 和 .NET Framework 4.5 开发一个 Windows 8.1 应用程序。

我有一个以图片为背景的页面:

</Page.Resources>

<Grid>
    <Grid.Background>
        <ImageBrush Stretch="UniformToFill" ImageSource="ms-appx:///Assets/Backgrounds/Clase.png"/>
    </Grid.Background>

但是,我看到页面首先出现,然后出现图像(加载时间不到一秒钟,但我可以看到完美的黑色背景,然后是图像)。

这是我导航到该页面的方式:

if (Frame != null)
    Frame.Navigate(typeof(QuizPage));

我将图像设置为内容并始终复制。

如何避免这个问题?无论如何要预加载该图像吗?

【问题讨论】:

    标签: c# xaml windows-8 windows-8.1


    【解决方案1】:

    我不确定,但我感觉Navigate() 调用实际上可能正在等待一些较小的图像立即显示,但为了获得即时导航并使应用程序响应 - 它很快就会超时并在未加载图像时进行导航。

    WinRT XAML 工具包中的 AlternativeFrameAlternativePage 控件是框架附带的 Frame/Page 的替换替换。它们的 API 表面非常相似,但有一些补充。其中 - ShouldWaitForImagesToLoad 属性使它们等待所有图像加载到被导航到的页面上。还有一个Preload() 方法允许预加载下一页或多个页面,这样当您调用Navigate() 时,下一页及其图像已经加载到后台并可以立即显示。

    页面过渡动画是一个额外的好处。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      相关资源
      最近更新 更多