2014-06-13 8 views
11

Ich schaffe eine universelle Anwendung mit Visual Studio Ultimate 2013 Version 12.0.30501.00 Update 2. Ich Schwerwiegender Fehler wie dieseMapControl in XAML führt zu einem "Catastropic failure"

<Maps:MapControl Visibility="Collapsed"/>. 
über das Hinzufügen von Map Control in meiner XAML Hinzufügen bin immer

ich habe

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

im Seitenkopf und hinzugefügt ‚Standort‘ Fähigkeit zur Anwendung Manifest-Datei hinzugefügt. Hat jemand das gleiche Problem konfrontiert? Sie können dies testen, indem Sie eine Beispielanwendung erstellen und nur MapControl hinzufügen. Bitte helfen Sie mir, dieses Problem zu lösen.

Das Problem wird in normalen Windows Phone 8.1-Anwendungen auch beobachtet. Fehle ich hier etwas?

Das Problem wird beobachtet, wenn ich versuche, die Anwendung im Emulator auszuführen.

Der Fehler zeigt keine anderen Informationen nur "Katastrophenversagen", sonst nichts.

Möglicherweise werde ich versuchen, Visual Studio neu zu installieren. Aber eine weitere interessante Tatsache ist, dass ich es funktionierte, wenn ich das Kartensteuerelement auf der Seite nicht verstecke.

Können Sie es testen, indem Sie eine Beispielanwendung erstellen und nur das Kartensteuerelement Visibility = 'Collapsed' erstellen?

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

Und das Problem wird in mehr als einem PC beobachtet.

+0

Ich habe genau das gleiche Problem, so ist dies behoben noch nicht –

Antwort

6

Ich habe dein Beispiel getestet und tatsächlich gibt es ein solches Problem auch auf meinem Telefon.

Als ich eingecheckt haben es möglich ist, Collapsed von Code zu setzen - um dieses Problem zu umgehen:

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

Im Code hinter:

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

Dank. Das Ausblenden des Steuerelements im Code funktioniert wie erwähnt. –

1

ich mit einer Vermeidung des Problems habe kommen für Dies. Anstatt die Sichtbarkeit zu verwenden, können Sie die Eigenschaften mapsheight/width verwenden, um die Karte zu verbergen/anzuzeigen. Setzen Sie sie auf 0, wenn Sie sie ausblenden möchten, und legen Sie sie auf die Breite/Höhe der Eltern fest, wenn Sie sie anzeigen möchten. Hier ist ein Codebeispiel:

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

Button-Handler:

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