bool IsMouseOver(FrameworkElement target) { var bounds = VisualTreeHelper.GetDescendantBounds(target); var mousePos = MouseUtilities.GetMousePosition(target); return(bounds.Contains(mousePos)); }
void UpdateDragAdornerLocation() { if (_dragAdorner != null) { var ptCursor = MouseUtilities.GetMousePosition(ListView); var left = ptCursor.X - _ptMouseDown.X; var itemBeingDragged = GetListViewItem(_indexToSelect); var itemLoc = itemBeingDragged.TranslatePoint(new Point(0, 0), ListView); var top = itemLoc.Y + ptCursor.Y - _ptMouseDown.Y; _dragAdorner.SetOffsets(left, top); } }
AdornerLayer InitializeAdornerLayer(ListViewItem itemToDrag) { var brush = new VisualBrush(itemToDrag); _dragAdorner = new DragAdorner(_listView, itemToDrag.RenderSize, brush) { Opacity = DragAdornerOpacity }; var layer = AdornerLayer.GetAdornerLayer(_listView); layer.Add(_dragAdorner); _ptMouseDown = MouseUtilities.GetMousePosition(_listView); return(layer); }
void OnListViewPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { if (IsMouseOverScrollbar) { _canInitiateDrag = false; return; } int index = IndexUnderDragCursor; _canInitiateDrag = index > -1; if (_canInitiateDrag) { _ptMouseDown = MouseUtilities.GetMousePosition(_listView); _indexToSelect = index; } else { _ptMouseDown = new Point(-10000, -10000); _indexToSelect = -1; } }