// do drop operation, i.e., recalculate connection path, etc. private static void DropEventHandler(object sender, DragEventArgs e) { DragDataWrapper data = e.Data.GetData(typeof(DragDataWrapper)) as DragDataWrapper; ModelItem m = data.Content as ModelItem; // get canvas Canvas c = sender as Canvas; Diagram d = Project.Current.Children.FindByCanvas(c); if (m == null || d == null) { return; } switch (data.Type) { case DragOperationType.Create: m.Draw(); d.SelectedItems.Set(m); #if DEBUG_ON // test value System.Console.WriteLine("{0} Drop on canvas", System.DateTime.Now.Millisecond); #endif break; } }