带有图像的WP7 Bing Maps图钉模板未显示

时间:2011-01-11 02:03:39

标签: silverlight xaml windows-phone-7 bing-maps pushpin

我的最终目标是在WP7应用中的Bing地图上设置带有自定义图像的图钉。我创建了一个控件模板和一个带图钉的地图。现在,我可以显示默认的图钉,但是当我尝试模板时,没有任何显示。这就是我现在所拥有的:

<phone:PhoneApplicationPage.Resources>
    <ControlTemplate x:Key="PushpinControlTemplate" TargetType="my:Pushpin">
        <Image Source="/Images/Pins/pin.png" />
    </ControlTemplate>
</phone:PhoneApplicationPage.Resources>

<my:Map Name="mapMain" CredentialsProvider="CredKey">
    <my:Pushpin/>
</my:Map>

如果我应用PushpinControl模板,则不显示任何内容:

<my:Pushpin Template="{StaticResource BoaPushpinControlTemplate}" />

如果我删除模板,它会显示默认的黑色形状。

我必须正确地模板,但我不知道问题是什么。我可以在ControlTemplate中没有图像吗?

2 个答案:

答案 0 :(得分:1)

如果您没有在Map上使用ItemSsource绑定,那么请使用简单的内容控制方法

   <maps:Pushpin Location="{Binding Location}">
            <Image Source="/Images/Pins/pin.png"   />
   </maps:Pushpin>

或者,如果动态填充推针,请使用以下方法

 <maps:Map x:Name="map" >
    <maps:MapItemsControl ItemsSource="{Binding Collection}">
        <maps:MapItemsControl.ItemTemplate>
            <DataTemplate>
                <maps:Pushpin Location="{Binding Location}">
                    <Image Source="/Images/Pins/pin.png"   />
                </maps:Pushpin>
            </DataTemplate>
        </maps:MapItemsControl.ItemTemplate>
    </maps:MapItemsControl>
</maps:Map>

答案 1 :(得分:1)

即使这个帖子有点旧,我也会发表我的建议:

试试这个链接Working with Pushpins,它对我有用(创建一个新的样式并在图钉声明中使用它)

(App.xaml,不要忘记命名空间!

xmlns:m="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps" >

<Application.Resources>    
    <Style TargetType="m:Pushpin" x:Key="PushpinStyle">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="m:Pushpin">
                    <Image Width="24" Height="24" Source="path_to_pic" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

(在xaml那里有地图)

<Grid x:Name="LayoutRoot" Background="Transparent">
    <m:Map x:Name="Map" Mode="Aerial"
              CredentialsProvider="CredKey">
        <m:MapItemsControl x:Name="Content">
            <m:MapItemsControl.ItemTemplate>
                <DataTemplate>
                    <m:Pushpin Location="{Binding Location}" Style="{StaticResource PushpinStyle}" />
                </DataTemplate>
            </m:MapItemsControl.ItemTemplate>
        </m:MapItemsControl>
    </m:Map>
</Grid>

如果这不起作用,请检查图片的构建操作是否设置为内容。

我花了一些时间来弄明白这一点,所以我希望我可以帮助别人,尽管这个帖子已经老了。 ;)