windows phone 8中的映射点击事件/鼠标按下事件?

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

我正在使用windows phone模拟器。我编写了一个非常简单的程序:当用户点击地图一次时,在地图上画一个标记

然后我使用map_tap event,得到点击的位置,如下所示

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);
相反