Pregunta

Estoy portar una aplicación de iPhone para WP7 que contiene un mapa con varios marcadores / chinchetas que recibo de un servicio web (ubicación, icono y título).

He fijado el XAML necesario para visualizar el mapa, así como algo de código para la chincheta:

<phone:PhoneApplicationPage.Resources>
    <ControlTemplate x:Key="customPushpin" TargetType="my:Pushpin">
        <Image Height="39" Source="Resources/Icons/Pushpins/pinGreen.png" Stretch="Fill" Width="32"/>
    </ControlTemplate>
</phone:PhoneApplicationPage.Resources>

<Grid x:Name="LayoutRoot" Background="Transparent">
    <my:Map Height="Auto" HorizontalAlignment="Stretch" Margin="0" x:Name="Map"
            VerticalAlignment="Stretch" Width="Auto" CredentialsProvider="{Binding CredentialsProvider}" 
            CopyrightVisibility="Collapsed" LogoVisibility="Collapsed" Center="{Binding Mode=TwoWay, Path=Center}" 
            ZoomBarVisibility="Visible" 
            ZoomLevel="{Binding Zoom, Mode=TwoWay}">
        <my:MapItemsControl ItemsSource="{Binding Pushpins}">
            <my:MapItemsControl.ItemTemplate>
                <DataTemplate>
                    <my:Pushpin MouseLeftButtonUp="Pushpin_MouseLeftButtonUp" 
                                Location="{Binding Location}" 
                                Template="{StaticResource customPushpin}">                           
                    </my:Pushpin>
                </DataTemplate>
            </my:MapItemsControl.ItemTemplate>
        </my:MapItemsControl>
    </my:Map>        
</Grid>

Estoy buscando una manera de agregar algún tipo de burbujas cuando el usuario hace clic en el marcador. He mirado un poco en CajasInfo / información sobre herramientas, pero ya que trabajan en vuelo estacionario, eso no es algo que pueda usar el teléfono (toque / clic).

estoy adivinando que no hay un control similar en WP7 que crea una burbuja? - ¿cómo podría ir sobre la creación de algo similar

Gracias de antemano,

Alex

¿Fue útil?

Solución

Simplemente podría colocar un borde cuadrado en el interior LayoutRoot con Visibilidad = "colapsado", a continuación, al hacer clic en el marcador de actualizar su contenido y hacerlo visible.

Sólo asegúrese de ponerlo después el control del mapa (de lo contrario, se representará detrás del mapa y en consecuencia será invisible).

Otros consejos

La forma más sencilla de lograr esto es para mostrar / ocultar el contenido del Pasador en grifo en lugar de MouseLeftButtonUp debido a algunas consideraciones de rendimiento.

void pushPin_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
   this.border.Visibility = System.Windows.Visibility.Visible;

    //stop the event from going to the parent map control
    e.Handled = true;
}

private void map_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
   this.border.Visibility = System.Windows.Visibility.Collapsed;   
}

Se puede crear una ventana emergente personalizado.

Un gran video que exaplains cómo hacer esto se encuentra aquí .

Otra solución es usar el ContextMenu del kit de herramientas de Silverlight para Windows Phone! Sólo tienes que ir a la Coding4Fun en CodePlex y descargarlo (que contiene el kit de herramientas) y en su interior XAML la chincheta Agregar definición siguiente:

<map:Pushpin x:Name="currentLocation">
<toolkit:ContextMenuService.ContextMenu>
    <toolkit:ContextMenu IsZoomEnabled="False">
        <toolkit:MenuItem Header="this is menu item 1" Click="MenuItem_Click" />
        <toolkit:MenuItem Header="this is menu item 2" Click="MenuItem_Click" />
        <toolkit:MenuItem Header="this is menu item 3" Click="MenuItem_Click" />
    </toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu></map:Pushpin>

De esta manera, cuando se mantiene pulsada la chincheta, que obtendrá la contectmenu! (Buen ejemplo también encontrar aquí: ejemplo )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top