private void ControlMouseDown(object sender, MouseButtonEventArgs e) { FrameworkElement senderControl = sender as FrameworkElement; if (senderControl != null) { HeliosVisual control = (HeliosVisual)senderControl.Tag; if (control != null && _editor != null && !control.IsLocked) { if (_editor.SelectedItems.Contains(control)) { if (Keyboard.Modifiers.HasFlag(ModifierKeys.Control)) { _editor.SelectedItems.Remove(control); } else { _editor.SelectedItems.Clear(); _editor.SelectedItems.Add(control); } } else { if (!Keyboard.Modifiers.HasFlag(ModifierKeys.Control)) { _editor.SelectedItems.Clear(); } _editor.SelectedItems.Add(control); } _editor.Focus(); } } }
public void OnDropCompleted(IDataObject obj, Point dragPoint) { HeliosVisual item = obj.GetData("Helios.Visual") as HeliosVisual; if (item == null) { return; } if (Math.Abs(_target.ZoomFactor) < 0.0001) { return; } Point scaledPoint = new Point(dragPoint.X / _target.ZoomFactor, dragPoint.Y / _target.ZoomFactor); _target.SnapManager.Location = scaledPoint; item.Left = Math.Max(0d, _target.SnapManager.NewLocation.X); item.Top = Math.Max(0d, _target.SnapManager.NewLocation.Y); item.Name = _target.VisualContainer.Children.GetUniqueName(item); _target.VisualContainer.Children.Add(item); _target.SelectedItems.Clear(); _target.SelectedItems.Add(item); _target.Focus(); ConfigManager.UndoManager.AddUndoItem(new ControlAddUndoEvent(_target.VisualContainer, item)); }
void TopLeft_DragStarted(object sender, DragStartedEventArgs e) { _editor.LoadSnapTargets(true); if (_isline) { Helios.Controls.LineDecoration line = _editor.SelectedItems[0] as Helios.Controls.LineDecoration; _editor.SnapManager.Size = new Size(1, 1); _editor.SnapManager.Location = line.Start; _editor.SnapManager.Action = SnapAction.LineStart; _tempLine.Clone(line); line.IsHidden = true; } else { _editor.SnapManager.Size = _editor.SelectedItems.Rectangle.Size; _editor.SnapManager.Location = _editor.SelectedItems.Rectangle.TopLeft; _editor.SnapManager.Action = SnapAction.ResizeNW; } _editor.SnapManager.DragVector = new Vector(0, 0); _editor.Focus(); }