private void root_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { CurrentElement = sender as FrameworkElement; if (CurrentElement != null && GetEditMode(CurrentElement)) { if ( !ShowArrows(CurrentElement, ref _transformX, ref _transformY, ref _renderOriginX, ref _renderOriginY)) { return; } int mouseCol, mouseRow; _initalState.ZIndex = GetZIndex(CurrentElement); SetZIndex(CurrentElement, 1000); _mouseOffset = Mouse.GetPosition(this); GetPosition(out mouseCol, out mouseRow); _initalState.Margin = CurrentElement.Margin; _initalState.Element = CurrentElement; _initalState.ColSpan = GetColumnSpan(CurrentElement); _initalState.RowSpan = GetRowSpan(CurrentElement); _initalState.Col = GetColumn(CurrentElement); _initalState.Row = GetRow(CurrentElement); _initalState.MouseGridRowPosition = mouseRow; _initalState.MouseGridColumnPosition = mouseCol; _isInDrag = true; CurrentElement.CaptureMouse(); e.Handled = true; } }