none
Windows Phone pushpin overlaping RRS feed

  • Discussion générale

  • Bonjour.

    Je réalise une petite application de géo localisation sur WP 7.5.

    Sur ma carte bing map, j'ai changé le template par défaut des pins ar ceci :

    <ControlTemplate TargetType="maps:Pushpin"  x:Key="allPushpinsTemplate">
                <Grid Height="26" Width="26" Margin="-13,-13,0,0" RenderTransformOrigin="0.5,0.5" >
                    <Grid.RenderTransform>
                        <CompositeTransform Rotation="-45"/>
                    </Grid.RenderTransform>
                    <Rectangle Fill="Black" HorizontalAlignment="Center" Margin="0" Stroke="White" VerticalAlignment="Center" Height="26" Width="26"/>
                    <Ellipse HorizontalAlignment="Center" Height="16" Margin="0" VerticalAlignment="Center" Fill="Red" Width="16"/>
                </Grid>
            </ControlTemplate>

    Ce qui fait un petit rond rouge.

    Quand je sélectionne une pin, en code behind je remplace le tempate de la pin sélectionnée par celui ci :

                <ControlTemplate TargetType="maps:Pushpin"  x:Key="detailedPushpinTemplate">
                    <Grid x:Name="ContentGrid" Background="Transparent" Margin="-4,0,0,0">
                        <StackPanel >
                            <Grid Background="Black">
                                <StackPanel Margin="5,5,0,0">
                                    <TextBlock  Text="{Binding Adress}" Foreground="White" />
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="{Binding ZipCode}" Foreground="White" />
                                        <TextBlock Text="-" Foreground="White" Padding="3,0"/>
                                        <TextBlock Text="{Binding City}" Foreground="White" />
                                    </StackPanel>
                                    <TextBlock Text="{Binding TelStd}" Foreground="White" />
                                    <TextBlock Text="{Binding Email}" Foreground="White" />
                                    <StackPanel Orientation="Horizontal">
                                        <Button BorderBrush="Transparent" Click="Button_Click" CommandParameter="email" ClickMode="Press">
                                            <Button.Content>
                                                <Image Source="/Images/Icons/icon-mail.png" Width="40" Height="40" />
                                            </Button.Content>
                                        </Button>
                                        <Button BorderBrush="Transparent" Click="Button_Click" CommandParameter="phone" ClickMode="Press">
                                            <Button.Content>
                                                <Image Source="/Images/Icons/icon-phone.png" Width="40" Height="40" />
                                            </Button.Content>
                                        </Button>
                                    </StackPanel>
                                </StackPanel>
                            </Grid>
                            <Polygon Fill="Black"  Points="0,0 29,0 0,29" Width="29" Height="29" HorizontalAlignment="Left" />
                            <Grid Height="26" Width="26" Margin="-13,-13,0,0" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left">
                                <Grid.RenderTransform>
                                    <CompositeTransform Rotation="-45"/>
                                </Grid.RenderTransform>
                                <Rectangle Fill="Black" HorizontalAlignment="Center" Margin="0" Stroke="White" VerticalAlignment="Center" Height="26" Width="26" />
                                <Ellipse HorizontalAlignment="Center" Height="16" Margin="0" VerticalAlignment="Center" Fill="Green" Width="16" />
                            </Grid>
                        </StackPanel>
                    </Grid>
            </ControlTemplate>


    Ainsi, j'ai changé la couleur du rond et aussi ajouté pas mal de détail, des boutons, etc ...

    Le problème c'est que les autres pins de la carte (celles en rouge) s'affichent par dessus mon cadre d'infos. J'ai essayé pas mal de trucs (mettre un canvas et gérer le zindex, exploré la piste des clustered pins) mais sans succès.

    Est ce que quelqu'un a une idée ? Pour info, voici le XAML de ma carte:

         <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <Canvas >
                    <maps:Map ZoomBarVisibility="Visible" ZoomLevel="4" Center="46.8821,2.2697"  Name="map1" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Canvas.Top="0" Height="600" Width="460">
                        <maps:MapItemsControl  x:Name="mapControl"/>
                        <maps:MapItemsControl ItemsSource="{Binding Locations}" >
                            <maps:MapItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <maps:Pushpin Location="{Binding Location}" Template="{StaticResource allPushpinsTemplate}" MouseLeftButtonDown="Pushpin_MouseLeftButtonDown"/>
                                </DataTemplate>
                            </maps:MapItemsControl.ItemTemplate>
                        </maps:MapItemsControl>
                        <maps:MapLayer Name="imageLayer"/>
                        </maps:Map>
                    <Button Content="some action" Height="70" HorizontalAlignment="Left" Margin="0" Name="button1" VerticalAlignment="Top" Width="170"  Canvas.Left="140" />
                </Canvas>
    
            </Grid>

    Par avance merci.


    • Type modifié Aurel Bera mercredi 3 octobre 2012 14:43 Pas de reponse
    • Modifié roche sebastien mercredi 3 octobre 2012 20:16 erreur de typo
    mercredi 3 octobre 2012 09:54

Toutes les réponses