private void lstControls_PreviewMouseMove(object sender, MouseEventArgs e) { if (lstControls.SelectedItems.Count < 1) { return; } Point mousePos = e.GetPosition(null); Vector diff = _startControlLstPoint - mousePos; if (e.LeftButton == MouseButtonState.Pressed && (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance) ) { ListBox listView = sender as ListBox; ListBoxItem listViewItem = UiSearchHelper.FindAnchestor <ListBoxItem>((DependencyObject)e.OriginalSource); if (null == listViewItem) { return; } IAniControl aniControl = (IAniControl)listView.ItemContainerGenerator. ItemFromContainer(listViewItem); // Initialize the drag & drop operation DataObject dragData = new DataObject(CommConst.DRAGED_CONTROL_DATA, aniControl); DragDrop.DoDragDrop(lstControls, dragData, DragDropEffects.Move); } }
public SelectControlEventArgs(IAniControl control) { SelectedControl = control; }