在XAML页面上预加载背景图像
本文关键字:加载 背景 图像 XAML | 更新日期: 2023-09-27 17:57:57
我正在用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));
我将图像设置为"内容"answers"始终复制"。
如何避免这个问题?有没有预加载该图像?
我不确定,但我有一种感觉,Navigate()
调用实际上可能在等待一点,以便立即显示较小的图像,但为了获得即时导航并使应用程序做出响应,它会很快超时并进行导航,即使在未加载图像的情况下也是如此。
WinRT XAML Toolkit中的AlternativeFrame
和AlternativePage
控件是框架附带的Frame
/Page
控件的替换项。他们的API表面相当相似,但他们有一些添加。其中包括ShouldWaitForImagesToLoad
属性,该属性使他们等待在导航到的页面上加载所有图像。还有一个Preload()
方法,它允许预加载下一个或多个页面,这样当您调用Navigate()
时,带有图像的下一个页面已经在后台加载,并且可以立即显示。
页面过渡动画是一个额外的奖励。