void AssociatedObject_MouseMove(object sender, MouseEventArgs e) { ComponentView draggable = sender as ComponentView; // Get the current mouse position Point mousePos = e.GetPosition(null); Vector diff = startPoint - mousePos; if (isPressed && e.LeftButton == MouseButtonState.Pressed && (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)) { ComponentViewModel compVM = this.AssociatedObject.DataContext as ComponentViewModel; if (compVM != null) { compVM.DoDragDrop(mousePos.X, mousePos.Y); // Initialize the drag & drop operation DataObject dragData = new DataObject("myFormat", compVM); DragDrop.DoDragDrop(draggable, dragData, DragDropEffects.Move); isPressed = false; } } }
public void CreateAllComponents(ComponentsRepository componentsRepository) { this.componentsRepository = componentsRepository; componentsList = new List <ComponentViewModel>(); foreach (Component component in componentsRepository.Components) { ComponentViewModel compVM = new ComponentViewModel(component); compVM.ReportDragEvent += compVM_ReportDragEvent; componentsList.Add(compVM); } Components = new ObservableCollection <ComponentViewModel>(componentsList); }
public void CreateAllComponents(ComponentsRepository componentsRepository) { this.componentsRepository = componentsRepository; componentsList = new List<ComponentViewModel>(); foreach (Component component in componentsRepository.Components) { ComponentViewModel compVM = new ComponentViewModel(component); compVM.ReportDragEvent += compVM_ReportDragEvent; componentsList.Add(compVM); } Components = new ObservableCollection<ComponentViewModel>(componentsList); }