我在Windows Phone 8.1上使用WinRt MapControl。但是当我尝试添加MapIcon或MapPolyline地图元素时,我只得到这样的文字:
XAML代码如下所示:
<maps:MapControl x:Name="MapOnScreenControl"
MapServiceToken="12345">
<maps:MapPolyline Path="{Binding Route, Converter={StaticResource RouteToGeopathConverter}}"/>
</maps:MapControl>
我在做什么是错的?感谢。
答案 0 :(得分:4)
不幸的是,地图元素无法通过XAML添加到地图中。您需要在代码中添加它们。
MapOnScreenControl.MapElements.Add(new MapPolyline());
我喜欢的一个技巧是使用viewmodel通过设置我的viewmodel的Map
属性或MapElements
属性来向地图添加元素。
private void MapPage_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args)
{
var vm = DataContext as MapViewModel;
vm.MapElements = MyMap.MapElements;
}
然后在viewmodel中,您可以向元素添加项目。
您还可以使用MapItemsControl
添加项目集合。
<maps:MapControl x:Name="Map" MapServiceToken="abcdef-abcdefghijklmno">
<maps:MapItemsControl ItemsSource="{Binding Locations}">
<maps:MapItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="Assets/Mappin.png" Height="25"
maps:MapControl.NormalizedAnchorPoint="1,0.5"
maps:MapControl.Location="{Binding Geopoint}" />
</DataTemplate>
</maps:MapItemsControl.ItemTemplate>
</maps:MapItemsControl>
</maps:MapControl>