[英]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.