/// <summary> /// Находится ли указатель над объектом. /// </summary> /// <param name="theTarget"></param> /// <param name="pos"></param> /// <returns></returns> private bool IsTheMouseOnTargetRow(Visual theTarget, GetGragDropPosition pos) { Rect posBound = VisualTreeHelper.GetDescendantBounds(theTarget); Point theMousePos = pos((IInputElement)theTarget); return(posBound.Contains(theMousePos)); }
/// <summary> /// Получить индекс строки, над которой находится указатель мыши. /// </summary> /// <param name="pos"></param> /// <returns></returns> private int GetDataGridItemCurrentRowIndex(GetGragDropPosition pos) { int curIndex = -1; for (int i = 0; i < grid.Items.Count; i++) { DataGridRow itm = GetDataGridRowItem(i); if (IsTheMouseOnTargetRow(itm, pos)) { curIndex = i; break; } } return(curIndex); }