windows phone 8中的映射点击事件/鼠标按下事件?
我正在使用windows phone模拟器。我编写了一个非常简单的程序:当用户点击地图一次时,在地图上画一个标记 然后我使用map_tap event,得到点击的位置,如下所示windows phone 8中的映射点击事件/鼠标按下事件?,windows,silverlight,maps,windows-phone,windows-phone-8,Windows,Silverlight,Maps,Windows Phone,Windows Phone 8,我正在使用windows phone模拟器。我编写了一个非常简单的程序:当用户点击地图一次时,在地图上画一个标记 然后我使用map_tap event,得到点击的位置,如下所示 private void map_Tap(object sender, System.Windows.Input.GestureEventArgs e) { Point p = e.GetPosition(null); GeoCoordinate s = map.ConvertViewportPointT
private void map_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
Point p = e.GetPosition(null);
GeoCoordinate s = map.ConvertViewportPointToGeoCoordinate(p);
Ellipse myCircle = new Ellipse();
myCircle.Fill = new SolidColorBrush(Colors.Blue);
myCircle.Height = 20;
myCircle.Width = 20;
myCircle.Opacity = 50;
MapOverlay myLocationOverlay = new MapOverlay();
myLocationOverlay.Content = myCircle;
myLocationOverlay.PositionOrigin = new Point(0, 0);
myLocationOverlay.GeoCoordinate = s;
MapLayer myLocationLayer = new MapLayer();
myLocationLayer.Add(myLocationOverlay);
map.Layers.Add(myLocationLayer);
}
问题是,我得到的点不是鼠标(在模拟器中是鼠标而不是手指)单击的点。它比我单击的位置低了一些距离(大约50像素)
因此,无论我在模拟器中单击什么地方,我单击的地方下方都会画一个圆圈,这有点奇怪
我的代码有什么问题吗
非常感谢。GestureEventArgs.GetPosition()方法采用一个参数,指定要获取相对坐标的UIElement(请参见)。所以,试着去做
Point p = e.GetPosition(map);
相反