Я пытаюсь создать поле с колоннами и строками (например, шахматы или что-то в этом роде).
Итак, для этого я использую Grid для начала и застрял: если я нажимаю MouseLeftButton на Rectangle в ячейке, это было ничто, но если я нажимаю на крошечный ряд или столбец, это было нормально.
для этого я использую Rectangle, который накладывается на сетку. все было в порядке, если свойство прямоугольника («Заполнить») не пусто. Но это тоже было проблемой: я не могу привязать данные к ячейкам: \
Итак, следующий шаг: я пытаюсь нарисовать прямоугольники и привязать к ним объекты, которые должны перехватывать события MouseLeftButton.
так:
public void Rectangle1_MouseLeftButtonDown(sender, e){
Rectangle r = new Rectangle();
UIElement s = sender as UIElement;
r = (Rectangle)(e.OriginalSource);
int Dx=11;
int Dy=11;
Brush pen = new SolidColorBrush(Colors.Orange);
Thickness thick = new Thickness();
thick.Right = 0;
thick.Bottom = 0;
Rectangle[,] rex = new Rectangle[(int)Dx,(int)Dy];
for(int i=0; i<Dx-1; ++i)
for (int j = 0; j < Dy-1; ++j)
{
int x = i*(int)r.Width/Dx + (int)r.Margin.Left;
int y = j*(int)r.Height/Dy + (int)r.Margin.Top;
thick.Left = x; thick.Top = y;
rex[i,j].Width =(int)r.Width/Dx ;
rex[i, j].Height = (int)r.Height / Dy;
rex[i, j].Fill = pen;
rex[i, j].HorizontalAlignment = HorizontalAlignment.Left;
rex[i,j].VerticalAlignment = VerticalAlignment.Top;
rex[i,j].Margin = thick;
LayoutRoot.Children.Add(rex[i, j]);
}
}
где я не прав?
(Большой прямоугольник нужно разделить на множество мелких, а также связывающих объектов)
Есть ли какой-нибудь простой способ сделать эту "шахматную доску"?