我的最终目标是在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中没有图像吗?
答案 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>
如果这不起作用,请检查图片的构建操作是否设置为内容。
我花了一些时间来弄明白这一点,所以我希望我可以帮助别人,尽管这个帖子已经老了。 ;)