Позвольте пользователю копировать фигуры на холсте - PullRequest
0 голосов
/ 17 апреля 2020

Я создал холст WPF, который позволяет пользователю рисовать прямоугольник или эллипс. См. Изображение ниже.

enter image description here

Я пытаюсь реализовать функцию копирования, где, если пользователь нажимает кнопку «Копировать», объекты на холсте будут скопированы, а затем, когда пользователь нажимает на холст, который является местом, куда будут вставлены объекты.

Это фрагмент моего кода, который не работает.

private Point startPoint;
private Rectangle rect;
private Ellipse circ;
UIElement copiedShapes;
volatile int shape=0;


private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
{
    if (button == 4)
    {
        foreach (var c in canvas.Children.OfType<Shape>())
        {
            canvas.Children.Add(c);  // This needs to be fixed
        }

    }
}

private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
    if (button == 4)
    {
        if (e.LeftButton == MouseButtonState.Released || c== null)
            return;

        var pos = e.GetPosition(canvas);

        var x = Math.Min(pos.X, startPoint.X);
        var y = Math.Min(pos.Y, startPoint.Y);

        Canvas.SetLeft(c, x);
        Canvas.SetTop(c, y);
    }
}

Если кто-то знает, как реализовать Эта функция или что я должен сделать, чтобы исправить код, пожалуйста, дайте мне знать. Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...