2014-06-13 28 views
11

我創建使用Visual Studio 2013最終版本12.0.30501.00更新2.我在我的XAML中加入地圖控件這樣在「Catastropic失敗」

<Maps:MapControl Visibility="Collapsed"/>. 
越來越災難性故障的普遍應用在XAML結果添加地圖控件

我已經在頁面頭部加

xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps" 

,並添加「位置」功能,以應用程序清單文件。 有沒有人遇到同樣的問題? 您可以通過創建示例應用程序來測試他,並只添加MapControl。請幫我解決這個問題。

在正常的Windows Phone 8.1應用程序中也觀察到該問題。我在這裏錯過了什麼嗎?

當我嘗試在模擬器中運行應用程序時,發現問題。

錯誤不顯示任何其他信息只是'災難性失敗',沒有別的。

可能是我會嘗試重新安裝Visual Studio。但另一個有趣的事實是,如果我沒有隱藏頁面中的地圖控件,我可以得到它的工作。

您可以通過創建一個示例應用程序並只是製作地圖控件來測試它嗎?Visibility ='Collapsed'?

<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上觀察到的。

+0

我有完全一樣的問題,所以這是不固定尚未 –

回答

6

我測試了您的示例,並且確實在我的手機上也存在這樣的問題。

正如我已經檢查了它可以設置Collapsed從碼 - 因此作爲一種解決方法:

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

在後面的代碼:我想出了一個解決方法

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

感謝。隱藏在代碼中的控件正如你所說的那樣工作。 –

1

這個。您可以使用地圖高度/寬度屬性來隱藏/顯示地圖,而不是使用可見性。如果要隱藏它們,請將它們設置爲0,並在想要顯示它時將其設置爲父寬度/高度。下面是一個代碼示例:

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

按鈕處理程序:

private void ShowMapBtn_Clicked(object sender, RoutedEventArgs e) 
{ 
    var mapContainer = MyMap.Parent as FrameworkElement; 
    MyMap.Width = mapContainer.ActualWidth; 
    MyMap.Height = mapContainer.ActualHeight; 

    //Hide the button 
    (sender as Button).Visibility = Visibility.Collapsed; 
}