private static void Fe_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) { Point?dragStartPoint = GetDragStartPoint((DependencyObject)sender); if (e.LeftButton != MouseButtonState.Pressed) { dragStartPoint = null; } if (dragStartPoint.HasValue) { DragObject dataObject = new DragObject(); if (((FrameworkElement)sender).DataContext is ToolBoxData) { ToolBoxData d = ((FrameworkElement)sender).DataContext as ToolBoxData; dataObject.ObjectInstance = (object)d.CreateShapeCommand; DragDrop.DoDragDrop((DependencyObject)sender, dataObject, DragDropEffects.Copy); e.Handled = true; } } }
/// <summary> /// Use the mouse up event to imitate a mouse click (together with mouse down). /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private static void fe_MouseUp(object sender, MouseButtonEventArgs e) { Point?dragStartPoint = GetDragStartPoint((DependencyObject)sender); if (dragStartPoint != null) { if (((FrameworkElement)sender).DataContext is ToolBoxData) { ToolBoxData d = ((FrameworkElement)sender).DataContext as ToolBoxData; if (d.CreateShapeCommand.CreateShape.CanExecute(null)) { d.CreateShapeCommand.CreateShape.Execute(null); } } } }