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 Volt Information Sciences Inc., where he manages technical training for software engineers working at the Microsoft Redmond, Wash., campus. He's worked on several Microsoft products, including Internet Explorer and MSN Search. Dr. McCaffrey is the author of ".NET Test Automation Recipes" (Apress, 2006) and can be reached at jammc@microsoft.com.