2014-06-13 8 views
11

sto creando un'applicazione universale utilizzando Visual Studio Ultimate Version 2013 12.0.30501.00 Update 2. sto ottenendo Errore grave sull'aggiunta Map Control nella mia XAML come questoMapControl nei risultati XAML in un "fallimento catastrofica"

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

ho aggiunto

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

nell'intestazione di pagina e ha aggiunto funzionalità 'location' per il file manifesto dell'applicazione. Qualcuno ha affrontato lo stesso problema? Puoi testarlo creando un'applicazione di esempio e aggiungendo solo MapControl. Per favore aiutami a risolvere questo problema.

Il problema si osserva anche nelle normali applicazioni Windows Phone 8.1. Mi manca qualcosa qui?

Il problema si verifica quando si tenta di eseguire l'applicazione in emulatore.

L'errore non mostra altre informazioni solo "errore catastrofico", nient'altro.

Potrebbe essere che proverò a reinstallare Visual Studio. Ma un altro fatto interessante è che potrei farlo funzionare se non nascondo il controllo della mappa nella pagina.

Puoi testarlo creando un'applicazione di esempio e facendo semplicemente il controllo della mappa 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> 

E il problema si osserva in più di un PC.

+0

Ho esattamente lo stesso problema quindi questo non è fisso ma –

risposta

6

Ho testato il tuo esempio e in effetti c'è un problema anche sul mio telefono.

Come ho controllato è possibile impostare Collapsed dal codice - così come una soluzione:

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

nel codice dietro:

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

Grazie. Nascondere il controllo nel codice funziona come hai menzionato. –

1

mi è venuta in mente una soluzione per Questo. Invece di usare la visibilità, puoi usare le proprietà altezza/larghezza delle mappe per nascondere/mostrare la mappa. Impostali su 0 quando vuoi nasconderli e impostalo sulla larghezza/altezza dei genitori quando vuoi mostrarli. Ecco un esempio di codice:

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