在xaml中添加MapControl会导致"灾难性故障"

时间:2014-06-13 22:37:10

标签: winrt-xaml windows-phone-8.1

我正在使用Visual Studio Ultimate 2013版本12.0.30501.00更新创建一个通用应用程序2.我在我的xaml中添加Map Control时遇到了灾难性的失败

<Maps:MapControl Visibility="Collapsed"/>. 

我添加了

xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps" 
页面标题中的

并添加了&#39; location&#39;应用程序清单文件的功能。 有没有人遇到同样的问题? 您可以通过创建示例应用程序并仅添加MapControl来测试他。请帮我解决这个问题。

在普通的Windows Phone 8.1应用程序中也会出现此问题。我在这里错过了什么吗?

当我尝试在模拟器中运行应用程序时,会出现问题。

错误没有显示任何其他信息只是“灾难性失败”,没有别的。

可能是我会尝试重新安装Visual Studio。但另一个有趣的事实是,如果我没有在页面中隐藏地图控件,我可以使它工作。

您是否可以通过创建示例应用程序来测试它,只需制作地图控件Visibility =&#39; Collapsed&#39;?

<Page
    x:Class="TestMaps.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TestMaps"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps" 
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>
        <Maps:MapControl Visibility="Collapsed" />
    </Grid>
</Page>

并且在多台PC上都会出现问题。

2 个答案:

答案 0 :(得分:6)

我已经测试了你的例子,确实在我的手机上也存在这样的问题。

正如我已经检查过,可以从代码中设置Collapsed - 以便解决方法:

<Grid>
   <Maps:MapControl Name="myMap" Visibility="Visible" />
</Grid>

在背后的代码中:

public MainPage()
{
    this.InitializeComponent();
    this.Loaded += (sender, e) => myMap.Visibility = Visibility.Collapsed;
}

答案 1 :(得分:1)

我为此提出了一个解决方法。您可以使用贴图高度/宽度属性隐藏/显示地图,而不是使用可见性。如果要隐藏它,请将它们设置为0,并在要显示它时将其设置为父级宽度/高度。这是一个代码示例:

DataTable

按钮处理程序:

<Page
    x:Class="WP81App.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:WP81App"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
     xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps" 
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>
        <Maps:MapControl Name="MyMap" Height="0" Width="0" />
        <Button Content="Show Map" Click="ShowMapBtn_Clicked" HorizontalAlignment="Center"/>
    </Grid>
</Page>