private void MyMap_MapGesture(object sender, ESRI.ArcGIS.Client.Map.MapGestureEventArgs e)
        {
            if (e.Gesture == GestureType.Tap)
            {
                FeatureLayer          featureLayer = MyMap.Layers["MyFeatureLayer"] as FeatureLayer;
                IEnumerable <Graphic> selected     = e.DirectlyOver(10, new GraphicsLayer[] { featureLayer });
                foreach (Graphic g in selected)
                {
                    MyInfoWindow.Anchor = e.MapPoint;
                    MyInfoWindow.IsOpen = true;
                    //Since a ContentTemplate is defined (in XAML), Content will define the DataContext for the ContentTemplate
                    MyInfoWindow.Content = g;
                    return;
                }

                InfoWindow window = new InfoWindow()
                {
                    Anchor          = e.MapPoint,
                    Padding         = new Thickness(3),
                    Map             = MyMap,
                    IsOpen          = true,
                    Placement       = InfoWindow.PlacementMode.Auto,
                    ContentTemplate = LayoutRoot.Resources["LocationInfoWindowTemplate"] as System.Windows.DataTemplate,
                    //Since a ContentTemplate is defined, Content will define the DataContext for the ContentTemplate
                    Content = new ESRI.ArcGIS.Client.Geometry.MapPoint(
                        double.Parse(e.MapPoint.X.ToString("0.000")),
                        double.Parse(e.MapPoint.Y.ToString("0.000")))
                };
                LayoutRoot.Children.Add(window);
            }
        }
 private void Map_MapGesture(object sender, ESRI.ArcGIS.Client.Map.MapGestureEventArgs e)
 {
     if (e.Gesture == GestureType.Tap)
     {
         _tapPoint = e.MapPoint;
         _dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 350);
         _dispatcherTimer.Tick    -= dispatcherTimer_Tick;
         _dispatcherTimer.Tick    += dispatcherTimer_Tick;
         _dispatcherTimer.Start();
     }
     else if (e.Gesture == GestureType.DoubleTap)
     {
         _dispatcherTimer.Stop();
     }
 }
        private void MyMap_MapGesture(object sender, ESRI.ArcGIS.Client.Map.MapGestureEventArgs e)
        {
            if (e.Gesture == GestureType.Tap && !MyDrawObject.IsEnabled)
            {
                MyInfoWindow.IsOpen = false;

                GraphicsLayer         pointsGraphicsLayer   = MyMap.Layers["MyPointGraphicsLayer"] as GraphicsLayer;
                GraphicsLayer         polygonsGraphicsLayer = MyMap.Layers["MyPolygonGraphicsLayer"] as GraphicsLayer;
                IEnumerable <Graphic> selected = e.DirectlyOver(10, new GraphicsLayer[] { pointsGraphicsLayer, polygonsGraphicsLayer });
                foreach (Graphic g in selected)
                {
                    MyInfoWindow.Anchor  = e.MapPoint;
                    MyInfoWindow.IsOpen  = true;
                    MyInfoWindow.Content = g;
                    return;
                }
            }
        }
        private void MyMap_MapGesture(object sender, ESRI.ArcGIS.Client.Map.MapGestureEventArgs e)
        {
            if (e.Gesture == GestureType.Tap)
            {
                MyInfoWindow.IsOpen = false;

                FeatureLayer featureLayer = MyMap.Layers["MyFeatureLayer"] as FeatureLayer;

                IEnumerable <Graphic> selected = e.DirectlyOver(10, new GraphicsLayer[] { featureLayer });
                foreach (Graphic g in selected)
                {
                    MyInfoWindow.Anchor      = e.MapPoint;
                    MyInfoWindow.IsOpen      = true;
                    MyInfoWindow.DataContext = g.Attributes;
                    return;
                }
            }
        }
        private void MyMap_MapGesture(object sender, ESRI.ArcGIS.Client.Map.MapGestureEventArgs e)
        {
            if (e.Gesture == GestureType.Tap)
            {
                GraphicsLayer glayer = MyMap.Layers["MySelectionGraphicsLayer"] as GraphicsLayer;
                glayer.Graphics.Clear();

                MyInfoWindow.IsOpen = false;

                double mapScale = MyMap.Scale;

                ArcGISTiledMapServiceLayer alayer = null;
                DataTemplate dt    = null;
                int          layid = 0;

                foreach (Layer layer in MyMap.Layers)
                {
                    if (layer.GetValue(Document.PopupTemplatesProperty) != null)
                    {
                        alayer = layer as ArcGISTiledMapServiceLayer;
                        IDictionary <int, DataTemplate> idict = layer.GetValue(Document.PopupTemplatesProperty) as IDictionary <int, DataTemplate>;

                        foreach (LayerInfo linfo in alayer.Layers)
                        {
                            if (((mapScale > linfo.MaxScale && // in scale range
                                  mapScale < linfo.MinScale) ||
                                 (linfo.MaxScale == 0.0 && // no scale dependency
                                  linfo.MinScale == 0.0) ||
                                 (mapScale > linfo.MaxScale && // minscale = 0.0 = infinity
                                  linfo.MinScale == 0.0)) &&
                                idict.ContainsKey(linfo.ID)) // id present in dictionary
                            {
                                layid = linfo.ID;
                                dt    = idict[linfo.ID];
                                break;
                            }
                        }
                    }
                }

                if (dt != null)
                {
                    QueryTask qt = new QueryTask(string.Format("{0}/{1}", alayer.Url, layid));
                    qt.ExecuteCompleted += (s, qe) =>
                    {
                        if (qe.FeatureSet.Features.Count > 0)
                        {
                            Graphic g = qe.FeatureSet.Features[0];
                            MyInfoWindow.Anchor          = e.MapPoint;
                            MyInfoWindow.ContentTemplate = dt;
                            MyInfoWindow.Content         = g.Attributes;
                            MyInfoWindow.IsOpen          = true;

                            SolidColorBrush symbolColor = new SolidColorBrush(Colors.Cyan);

                            if (g.Geometry is Polygon || g.Geometry is Envelope)
                            {
                                g.Symbol = new SimpleFillSymbol()
                                {
                                    BorderBrush     = symbolColor,
                                    BorderThickness = 2
                                };
                            }
                            else if (g.Geometry is Polyline)
                            {
                                g.Symbol = new SimpleLineSymbol()
                                {
                                    Color = symbolColor
                                };
                            }
                            else // Point
                            {
                                g.Symbol = new SimpleMarkerSymbol()
                                {
                                    Color = symbolColor,
                                    Size  = 12
                                };
                            }
                            glayer.Graphics.Add(g);
                        }
                    };

                    ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query();
                    query.Geometry            = e.MapPoint;
                    query.OutSpatialReference = MyMap.SpatialReference;
                    query.OutFields.Add("*");
                    query.ReturnGeometry = true;

                    qt.ExecuteAsync(query);
                }
            }
        }