Я создал холст WPF, который позволяет пользователю рисовать прямоугольник или эллипс. См. Изображение ниже.
Я пытаюсь реализовать функцию копирования, где, если пользователь нажимает кнопку «Копировать», объекты на холсте будут скопированы, а затем, когда пользователь нажимает на холст, который является местом, куда будут вставлены объекты.
Это фрагмент моего кода, который не работает.
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);
}
}
Если кто-то знает, как реализовать Эта функция или что я должен сделать, чтобы исправить код, пожалуйста, дайте мне знать. Любая помощь приветствуется.