Можно ли рисовать фигуры в C # wpf (grid), если сетка разделена на строки и ячейки, и каждая строка содержит внутри панель стека? - PullRequest
0 голосов
/ 30 апреля 2018

Когда я пытаюсь нарисовать фигуру, например, линию, работает только в первой StackPanel

Line myLine = new Line();
myLine.Stroke = System.Windows.Media.Brushes.LightSteelBlue;
myLine.X1 = 1;
myLine.Y1 = 1;

myLine.X2 = 500;
myLine.Y2 = 50;
// myLine.HorizontalAlignment = HorizontalAlignment.Left;
// myLine.VerticalAlignment = VerticalAlignment.Center;
myLine.StrokeThickness = 2;
gridAreaFight.Children.Add(myLine);

А вот изображение сетки.

image

Я пытаюсь создать игру Tower Defense, и я хочу, чтобы башни атаковали (с линиями / формами) по сетке, но кажется, что метод draw работает только на моем первом изображении панели стека (см. Рисунок в левый верхний угол). Есть что-то, что я не правильно делаю? Или я должен использовать что-то другое вместо метода рисования для моих башен?

1 Ответ

0 голосов
/ 30 апреля 2018

Вам необходимо установить диапазон строк и столбцов для линии, чтобы нарисовать ее во всем доступном пространстве. Если вы рисуете что-то в сетке без определенной строки и столбца, по умолчанию это столбец и номер строки 0.

        Line myLine = new Line();
        myLine.Stroke = System.Windows.Media.Brushes.LightSteelBlue;
        Grid.SetRowSpan(myLine, n); // Here you are setting RowSpan. n-number of rows to span
        Grid.SetColumnSpan(myLine, n); // Here you are setting ColumnSpan. n-number of columns to span
        myLine.X1 = 1;
        myLine.Y1 = 1;

        myLine.X2 = 500;
        myLine.Y2 = 50;
        // myLine.HorizontalAlignment = HorizontalAlignment.Left;
        // myLine.VerticalAlignment = VerticalAlignment.Center;
        myLine.StrokeThickness = 2;
        area.Children.Add(myLine);
...