UWP页面预加载(是否可以预加载页面内容)

时间:2016-02-22 06:54:54

标签: xaml win-universal-app preload

我正在使用Windows 10应用。我在我的第二页创建了地图..但它太慢了..是否可以在将页面内容显示给用户之前预先加载页面内容,以便从第x页到第y页的过渡是否顺畅?

2 个答案:

答案 0 :(得分:0)

最简单的选择可能就是不要让它成为一个页面;相反,在您开始的页面上有地图,但其Opacity为零。然后,当您想要显示它时,将Opacity设置为1。这个if课程意味着您支付加载地图的费用,即使用户从不想查看它,但它也可以立即查看。

示例XAML:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  <Button Content="go to map" Click="GoToMap" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  <Grid x:Name="mapLayer" xmlns:maps="using:Windows.UI.Xaml.Controls.Maps" Opacity="0" IsHitTestVisible="False">
    <Grid.RowDefinitions>
      <RowDefinition Height="*"/>
      <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <maps:MapControl />
    <Button Content="back" Click="HideMap" HorizontalAlignment="Center" Grid.Row="1"/>
  </Grid>
</Grid>

匹配代码:

private void GoToMap(object sender, RoutedEventArgs e)
{
  mapLayer.Opacity = 1;
  mapLayer.IsHitTestVisible = true;
}

private void HideMap(object sender, RoutedEventArgs e)
{
  mapLayer.Opacity = 0;
  mapLayer.IsHitTestVisible = false;
}

答案 1 :(得分:0)

无法实现,导航到某个页面时,uwp应用中的所有页面都会被渲染。

但您可以在导航到第二页之前准备数据,也许您可​​以将这些数据保存在本地存储中,并在第二页的OnNavigatedTo方法中加载数据,这样会更好。