Map Your Apps: Listing 3.

Handling the double-click event.Handling the double-click event.

private void map_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
  e.Handled = true;
  listBox1.Items.Add("Map double-click occurred");

  Point p0 = e.GetPosition(this);
  Point p1 = new Point(p0.X - 300, p0.Y); 
  Location loc1 = myMap.ViewportPointToLocation(p1);

  listBox1.Items.Add("Click window XY = " + p0.X + "," + p0.Y);
  listBox1.Items.Add("Click map XY = " + p1.X + "," + p1.Y);
  listBox1.Items.Add("Click lat-lon = " + loc1.Latitude.ToString("F4") + ","
    + loc1.Longitude.ToString("F4"));
  listBox1.Items.Add("");

  PlaceDot(loc1, Colors.Red);
  listBox1.Items.Add("Placing red dot at mouse-click");

  Point p2 = new Point(p1.X + 150, p1.Y + 100);
  Location loc2 = myMap.ViewportPointToLocation(p2); 
  PlaceDot(loc2, Colors.Cyan);
  listBox1.Items.Add("Placing cyan second dot to right and lower");

  Point p3 = new Point(p1.X + 150, p1.Y - 100);
  Location loc3 = myMap.ViewportPointToLocation(p3);
  PlaceDot(loc3, Colors.Cyan);
  listBox1.Items.Add("Placing cyan third dot to right and higher");
  listBox1.Items.Add("");

  DrawLine(loc1, loc2);
  listBox1.Items.Add("Drawing solid line from first to second dot");
  listBox1.Items.Add("");

  DrawCurve(loc1, loc3);
  DrawCurve(loc3, loc1);
  listBox1.Items.Add("Drawing dashed curve from first to third dot");
  listBox1.Items.Add("Drawing dashed curve from third to first dot");
  listBox1.Items.Add("");
}

About the Author

Dr. James McCaffrey works for Microsoft Research in Redmond, WA. James has worked on several key Microsoft products such as Internet Explorer and Bing. James can be reached at jamccaff@microsoft.com.