Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xaml UWP页面预加载(是否可以预加载页面内容)_Xaml_Win Universal App_Preload - Fatal编程技术网

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

Xaml UWP页面预加载(是否可以预加载页面内容),xaml,win-universal-app,preload,Xaml,Win Universal App,Preload,我正在开发一个Windows10应用程序。我在第二页创建了地图。。但是它太慢了。。是否可以在向用户显示页面之前预加载页面内容,以便从页面x平滑过渡到页面y 最简单的选择可能是根本不把它变成一个页面;取而代之的是,将地图放在你开始的页面上,但其不透明度必须为零。然后,当您想要显示它时,将不透明度设置为1。这意味着即使用户不想查看地图,你也要支付加载地图的费用,但这会使查看变得即时 样本XAML: <Grid Background="{ThemeResource ApplicationPage

我正在开发一个Windows10应用程序。我在第二页创建了地图。。但是它太慢了。。是否可以在向用户显示页面之前预加载页面内容,以便从页面x平滑过渡到页面y

最简单的选择可能是根本不把它变成一个页面;取而代之的是,将地图放在你开始的页面上,但其
不透明度必须为零。然后,当您想要显示它时,将
不透明度设置为1。这意味着即使用户不想查看地图,你也要支付加载地图的费用,但这会使查看变得即时

样本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>

不可能,当您导航到某个页面时,uwp应用程序中的所有页面都将呈现


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

谢谢您的回答。。是否有类似secondpage.preload()之类的选项?因为当用户在第一页时,我需要加载第二页。为什么它需要是一个单独的页面?因为你不知道我的设计。。我的客户希望它是分开的。它必须是一个
页面
对象,还是看起来像是在一个单独的页面上?它们是两个不同的页面视图。我有一个主视图,当我单击地图按钮时,我打开了第二个页面,但地图速度非常慢。。由于这个原因,我需要在我的第一页进行预加载。我想我无法存储这些数据,因为我使用的是yandex流量信息。
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;
}