2016-02-22 109 views

回答

0

最简单的选择可能不是使它成为一个页面;相反,请在您开始的页面上放置地图,但其Opacity为零。然后,当您想要显示它时,请将Opacity设置为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> 

和配套代码:

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; 
} 
+0

感谢您的回答..是否有任何选项,如secondpage.preload()或类似的东西?因为当用户在第一页时我需要加载第二页。 – Mike

+0

为什么它需要成为一个单独的页面? –

+0

因为你不知道我的设计..我的客户希望它分开。 – Mike

0

是不可能的,当你访问了几个页面,UWP应用程序的所有页面将被渲染。

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

+0

我猜我不能存储这些数据,因为我使用yandex交通信息。 – Mike