private static void DragChildren(object element, MouseEventArgs e) { if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { IDragBehavior draggable = element as IDragBehavior; if (draggable != null) { foreach (FrameworkElement obj in draggable.GetChildElements()) { DoDrag(obj, e); } } } }
private static void DragFinishedChildren(object element) { if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { IDragBehavior draggable = element as IDragBehavior; if (draggable != null) { foreach (FrameworkElement obj in draggable.GetChildElements()) { obj.ClearValue(OriginalXPropertyKey); obj.ClearValue(OriginalYPropertyKey); } } } }
private static void DragStartedChildren(object element, MouseButtonEventArgs e) { if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { IDragBehavior draggable = element as IDragBehavior; if (draggable != null) { foreach (FrameworkElement obj in draggable.GetChildElements()) { Point pos = e.GetPosition(obj as IInputElement); // save the position of the mouse to the start position SetOriginalX(obj, pos.X); SetOriginalY(obj, pos.Y); } } } }