新地图控件中没有 DataContext 和点击 属性 - Windows 10
No DataContext and Tapped property in New Map Control - Windows 10
我对 Windows 10 UWP 中的新地图控件有疑问。我需要添加一个包含一组多边形的地图图层,每个多边形都必须保存一些绑定到它的数据,我想知道如何处理多边形上的点击事件以显示与其相关的详细信息。但是没有 属性 DataContext,MapPolygon class 中也没有 Tapped 事件。我们怎样才能实现它?
您可以在数据模板中定义多边形,您可以将多边形的路径绑定到 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
}
我对 Windows 10 UWP 中的新地图控件有疑问。我需要添加一个包含一组多边形的地图图层,每个多边形都必须保存一些绑定到它的数据,我想知道如何处理多边形上的点击事件以显示与其相关的详细信息。但是没有 属性 DataContext,MapPolygon class 中也没有 Tapped 事件。我们怎样才能实现它?
您可以在数据模板中定义多边形,您可以将多边形的路径绑定到 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
}