我正在使用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));
我将图像设置为内容和复制。
如何避免这个问题?反正有预加载那张图片吗?
答案 0 :(得分:1)
我不确定,但我觉得Navigate()
电话可能实际上正在等待一些如此小的图像立即显示,但要立即导航并使应用程序响应 - 即使未加载图像,它也会快速超时并导航。
WinRT XAML工具包中的AlternativeFrame
和AlternativePage
控件是框架附带的Frame
/ Page
替换项。它们的API表面非常相似,但它们有一些附加功能。其中包括ShouldWaitForImagesToLoad
属性,它们等待所有图像加载到导航到的页面上。还有一个Preload()
方法允许预加载下一页或多个页面,以便在您调用Navigate()
时 - 其图像的下一页已经在后台加载并且可以立即显示。
页面过渡动画是一个额外的好处。