定位销在地图放大或UWP缩小时位于地图项目控制下移动
问题描述:
我目前正在开发一个应用程序,我需要在地图上显示地址引脚以及地址,但目前当我放大或缩小时,销子不断移动,从外观和感觉上,它清晰可见,销子也从原来的拉长。我的XAML模板是如以下定位销在地图放大或UWP缩小时位于地图项目控制下移动
<DataTemplate x:Key="MapItemTemplate">
<StackPanel Orientation="Vertical"
x:Name="pushPin"
DataContext="{Binding}"
Tapped="pushPin_Tapped">
<Border BorderThickness="1" BorderBrush="LightGray">
<StackPanel x:Name="MapIcon"
Background="White" >
<TextBlock Text="{Binding LocationAddress}"
Foreground="Black"
FontWeight="SemiBold"
FontSize="12"
Margin="5"
TextWrapping="WrapWholeWords"/>
</StackPanel>
</Border>
<Image Height="30"
VerticalAlignment="Top"
maps:MapControl.Location="{Binding LocationGeoCoordinate}"
maps:MapControl.NormalizedAnchorPoint="0.5,0.5"
Source="ms-appx:///Images/pushpin.png"/>
</StackPanel>
</DataTemplate>
的.cs代码
地图控件地图=新地图控件(); map.MapServiceToken =“MyMapServiceToken”;
MapItemsControl itemsMapControl = new MapItemsControl();
itemsMapControl.ItemTemplate = this.Resources["MapItemTemplate"] as DataTemplate;
map.Children.Add(itemsMapControl);
Grid.SetRow(map, 1);
mapViewGrid.Children.Add(map);
var stdMapItemControl = children.FirstOrDefault(x => x.GetType() == typeof(MapItemsControl)) as MapItemsControl;
itemsMapControl.ItemsSource = locationsList;
await map.TrySetViewAsync(locationsList[0].LocationGeoCoordinate, 15D, 0, 0, MapAnimationKind.Bow);
有人可以建议我在做什么错吗?我能以某种方式改进它吗?要求是这样的,我需要显示位置地址以及引脚。
答
为XAML附加到地图上,并用它移动,你需要调用MapControl.SetLocation的XAML如下所示: https://docs.microsoft.com/en-us/windows/uwp/maps-and-location/display-poi
对于简单的图像像上面的XAML,建议使用相反,MapIcon会有更高的性能。上面的页面还显示了如何使用MapIcon