簡體   English   中英

在Windows Phone 8中映射點擊事件/鼠標按下事件?

[英]Map tap event / mouse down event in windows phone 8?

我正在使用Windows手機模擬器。 我寫了一個非常簡單的程序:當用戶點擊地圖一次時,在地圖上繪制一個標記。

然后我使用了map_tap事件,並獲得了如下的tapped位置,

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(參見MSDN文檔 )。 所以,試試吧

Point p = e.GetPosition(map);

代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM