void image_mylocation_Tap(object sender, GestureEventArgs e) { if (Mymap.Layers.Contains(mypositionPoi)) { Mymap.Layers.Remove(mypositionPoi); mypositionPoi.Clear(); } if (Mymap.Layers.Contains(detailPois)) { Mymap.Layers.Remove(detailPois); detailPois.Clear(); } var img = (Ellipse)sender; var poi = img.DataContext as MyLocationPoi; var over = new MapOverlay { GeoCoordinate = poi.cordinate }; var control = new MyLocationPoiControl(); control.grd_loc.Tap += grd_loc_Tap; if (!_sourcePoi && !_externalSource) control.btn_source.Visibility = Visibility.Collapsed; control.btn_source.Click += my_locabtnclick; over.Content = control; over.PositionOrigin = new Point(0.5, 1.0); mypositionPoi.Add(over); Mymap.Layers.Add(mypositionPoi); }