C# WPF - Форма появления клика мышью из центра клика

Я работаю над практическим приложением, которое добавляет синие квадраты на холст, когда вы нажимаете внутри холста. Одним из требований является то, что фигура добавляется в этой точке с помощью мыши, представляющей центр новой фигуры.

По умолчанию точка щелчка мыши будет находиться в верхнем левом углу квадрата. Есть ли способ сделать квадратный икру из центра щелчка мышью вместо правого верхнего угла?

Вот как я сейчас добавляю свои квадраты на холст:

    private void canvasArea_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {

        Shape Rendershape = null;

        switch (Shape1)
        {
            case SelectedShape.Rectangle:
                Rendershape = new Rectangle() 
                { 
                    Fill = Brushes.Blue, 
                    Height = num1, 
                    Width = num2
                };
                break;
            default:
                return;
        }

        Canvas.SetLeft(Rendershape, e.GetPosition(canvasArea).X);
        Canvas.SetTop(Rendershape, e.GetPosition(canvasArea).Y);
        canvasArea.Children.Add(Rendershape);
    }

1 ответ

Решение

Все, что вам нужно сделать, это сместить прямоугольник на половину ширины и высоты прямоугольника, см. Следующий код:

Canvas.SetLeft(Rendershape, e.GetPosition(canvasArea).X - ( Rendershape.Width / 2.0 ) );
Canvas.SetTop(Rendershape, e.GetPosition(canvasArea).Y - ( Rendershape.Height / 2.0 ) );
Другие вопросы по тегам