新地图控件中没有DataContext和Tapped属性-Windows 10

本文关键字:Tapped 属性 -Windows DataContext 控件 新地图 | 更新日期: 2023-09-27 18:25:07

我有一个关于Windows 10 UWP中的新映射控件的问题。我需要添加一个包含一组多边形的地图层,每个多边形都必须保存一些绑定到它的数据,我想知道如何处理多边形上的点击事件以显示与它相关的细节。但MapPolygon类中没有DataContext属性,也没有Tapped事件。我们怎样才能做到这一点?

新地图控件中没有DataContext和Tapped属性-Windows 10

您可以在数据模板中定义多边形,并可以将多边形的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
        }