新地图控件中没有DataContext和Tapped属性-Windows 10
本文关键字:Tapped 属性 -Windows DataContext 控件 新地图 | 更新日期: 2023-09-27 18:25:07
我有一个关于Windows 10 UWP中的新映射控件的问题。我需要添加一个包含一组多边形的地图层,每个多边形都必须保存一些绑定到它的数据,我想知道如何处理多边形上的点击事件以显示与它相关的细节。但MapPolygon类中没有DataContext属性,也没有Tapped事件。我们怎样才能做到这一点?
您可以在数据模板中定义多边形,并可以将多边形的Path绑定到BasicGeoposition列表。对于点击事件,当用户点击多边形时,可以从mapElementClick事件中获取地理位置。
我尝试了下面的代码来从多边形中获取点击事件,它似乎可以工作
1) 创建多边形
var polygon = new MapPolygon();
polygon.FillColor = Color.FromArgb(80, 255, 0, 0);
polygon.StrokeColor = Colors.Red;
polygon.StrokeThickness = 15;
2) 设置多边形的路径
List<BasicGeoposition> positions = new List<BasicGeoposition>();
positions.Add(new BasicGeoposition { Latitude = 25.251231, Longitude = 55.305957 });
positions.Add(new BasicGeoposition { Latitude = 25.251105, Longitude = 55.306445 });
positions.Add(new BasicGeoposition { Latitude = 25.249977, Longitude = 55.306091 });
positions.Add(new BasicGeoposition { Latitude = 25.250392, Longitude = 55.304441 });
positions.Add(new BasicGeoposition { Latitude = 25.250748, Longitude = 55.304661 });
positions.Add(new BasicGeoposition { Latitude = 25.250481, Longitude = 55.305726 });
polygon.Path = new Geopath(positions);
3) 将多边形添加到MapElemetns
myMap.MapElements.Add(polygon);
4) 设置地图中心和缩放级别
myMap.Center = new Geopoint((new BasicGeoposition { Latitude =
25.251231, Longitude = 55.305957 }));
myMap.ZoomLevel = 18;
5) 添加MapElementClick事件以处理多边形上的点击
myMap.MapElementClick += MyMap_MapElementClick;
private void MyMap_MapElementClick(MapControl sender, MapElementClickEventArgs args)
{
// add your code to position the canvas (pop up) and display it here
}