0

这是一个简单的应用程序。它显示基于数据绑定的动态多个图钉。

当用户点击图钉时,信息框将显示在上方,如图所示。

在此处输入图像描述

当用户再次点击图钉时。信息框将折叠。

如果用户点击地图中不是图钉的任何区域。所有图钉的信息框都将折叠。

另一件事是;点击信息框时,它将导航到该位置的详细信息页面。

这是我的资源部分。

<phone:PhoneApplicationPage.Resources>
    <ControlTemplate x:Key="currentPushPin" TargetType="my:Pushpin">
        <Grid x:Name="ContentGrid"
           Width="58"
           Height="76"
           Margin="0">
            <Image Source="images/currentPin.png" Stretch="Fill"/>
        </Grid>
    </ControlTemplate>

    <ControlTemplate x:Key="normalPushPin" TargetType="my:Pushpin">
        <StackPanel>
            <ContentPresenter x:Name="content" HorizontalAlignment="Center"/>
            <Path Data="M0,0 L0,1 L1,0"
                        Fill="Black" Stretch="Fill" Margin="15,0" Height="12"
                                Width="18" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent},
                                Path=Content.Visibility, Mode=TwoWay}" HorizontalAlignment="Left" />
            <Image Source="images/Pin.png" Stretch="None" HorizontalAlignment="Left"/>
        </StackPanel>
    </ControlTemplate>

    <DataTemplate x:Key="LogoTemplate">
        <my:Pushpin Background="#FFB6DE2E" Location="{Binding location}" Tap="Pushpin_Tap">
            <my:Pushpin.Content>
                <Border Background="Black" Width="130" Visibility="Collapsed" x:Name="border"  HorizontalAlignment="Center" >
                    <StackPanel>
                        <TextBlock TextAlignment="Center" Text="{Binding title}"/>
                    </StackPanel>
                </Border>
            </my:Pushpin.Content>
        </my:Pushpin>
    </DataTemplate>
</phone:PhoneApplicationPage.Resources>

这是我的地图和 MapItemControl。

<my:Map ZoomLevel="10"  Margin="0,-21,0,0" Name="myMap" CredentialsProvider="AsbJ8nhHrawCJNpgYLyPRSunojuLOKcZtMj_ZUEgEGW5dSsczqrQHDZwbi0i2bFY" Tap="map_Tap">
            <my:Pushpin Name="currentPin" Template="{StaticResource currentPushPin}" Margin="0,-22,0,0">
            </my:Pushpin>
            <my:MapItemsControl ItemTemplate="{StaticResource LogoTemplate}" ItemsSource="{Binding PushpinCollection}" >
            </my:MapItemsControl>
        </my:Map>

问题是我应该在这些事件处理程序中编写什么代码?另一个问题是如何让信息框在被点击时导航到其他页面。

//Event Handler for pushpins
    private void Pushpin_Tap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        //What I should write here?
    }


    private void map_Tap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        //What I should write here?
    }

谢谢 !!!

4

1 回答 1

0

我知道这一点很晚,但是为有类似问题的人省去一些痛苦 - 看看http://igrali.com/2012/01/07/show-a-tooltip-for-tapped-pushpin-on -Windows-电话/

它可能会给你一些关于如何进行的指导。

于 2013-10-23T15:49:45.807 回答