0

Мне нужно в сетку Grid динамически расположить шесть прямоугольников Rectangle разного цвета.

введите сюда описание изображения

Можно, конечно, прописать каждый в отдельности. Но, наверное, есть более подходящий способ для этого?

Потом надо будет к каждому прямоугольнику добавить возможность перетаскивать его копию (мышью).

Для начала можно дать общую информацию, чтобы я смог сориентироваться в каком направлении мне двигаться.

Я что-то подобное уже делал в Windows Forms: создавал массив кнопок, которые можно было перетаскивать (мышью). Но в WPF, как я понимаю, все работает по другому.

Debugger
  • 47
  • 6

1 Answers1

0

Массив прямоугольников создал. введите сюда описание изображения

Осталось реализовать перетаскивание.

Вот код кому интересно:

    Rectangle[] recArr = new Rectangle[6];
createRecArr();

void createRecArr()
{
    for(int i = 0; i < 6; i++)
    {
        Color color = numToColor(i);
        recArr[i] = new Rectangle();

        mainGrid.Children.Add(recArr[i]);
        Grid.SetColumn(recArr[i], 10 + i);
        Grid.SetRow(recArr[i], 10);
        recArr[i].Fill = new SolidColorBrush(color);
    }
}

Color numToColor(int vcolor)
{
    Color colr = new Color();

    switch (vcolor)
    {
        case 0:
            colr =  Colors.White;
            break;
        case 1:
            colr =  Colors.Red;
            break;
        case 2:
            colr =  Colors.Blue;
            break;
        case 3:
            colr =  Colors.Yellow;
            break;
        case 4:
            colr =  Colors.Orange;
            break;
        case 5:
            colr =  Colors.Green;
            break;
    }

    return colr;
}

Можно ли элемент помещенный в ячейку Gridа плавно перетаскивать независимо от сетки или надо по другому реализовывать расположение элементов?

Debugger
  • 47
  • 6