// Start dragging. public void canvas1_MouseDown(object sender, MouseButtonEventArgs e) { MouseHitType = SetHitType(rectangle, Mouse.GetPosition(canvas1)); SetMouseCursor(); if (selected_rectangle != null) { if (MouseHitType == HitType.None) { if (selected_rectangle != null) { selected_rectangle.Unselect(); selected_rectangle = null; } return; } } LastPoint = Mouse.GetPosition(canvas1); DragInProgress = true; }
// Start dragging. private void canvas1_MouseDown(object sender, MouseButtonEventArgs e) { MouseHitType = SetHitType(rectangle, Mouse.GetPosition(canvas1)); SetMouseCursor(); if (selected_rectangle != null && e.OriginalSource is Canvas) { selected_rectangle.Unselect(); NotifySelectionChanged(selected_rectangle.description, selected_rectangle.isSelected); selected_rectangle = null; return; } if (MouseHitType == HitType.None) { return; } LastPoint = Mouse.GetPosition(canvas1); DragInProgress = true; try { if (selected_rectangle != null) { selected_rectangle.Unselect(); NotifySelectionChanged(selected_rectangle.description, selected_rectangle.isSelected); } //Проверяем чтобы был нажат один из элементов на RectangleNamed //if (e.OriginalSource is Rectangle) // selected_rectangle = (RectangleNamed)((Rectangle)e.OriginalSource).Parent; //if (e.OriginalSource is TextBlock) // selected_rectangle = (RectangleNamed)((TextBlock)e.OriginalSource).Parent; selected_rectangle = selectRectangleNamed(e.OriginalSource); selected_rectangle.Select(); NotifySelectionChanged(selected_rectangle.description, selected_rectangle.isSelected); } catch (Exception err) { } }