Понимание единообразного управления сеткой
Я просто пытался создать единую сетку, как она работает.
Код:
<UniformGrid Name="uniformGrid1" Rows="2" Columns="3">
<Button Content="Rohit" Grid.Row="0" Grid.Column="0" />
<Button Content="asit" Grid.Row="0" Grid.Column="2" />
</UniformGrid>
Я обнаружил, что обе кнопки расположены рядом друг с другом, однако между ними существует столбец. Почему это так? (как в единой сетке, каждая ячейка имеет одинаковый размер, между ними должна быть одна ячейка)
Понял, почему это так (по ответам), но все же интересно узнать, какое значение Attached property - Grid.Row и Grid.Column, если они ничего не делают???
Ответы
Ответ 1
UniformGrid содержит два свойства: строки и столбцы для установки количества строк и столбцов. Элементы управления добавляются в сетку в том порядке, в котором они объявлены.
Таким образом, между ними не будет никакой колонки. В вашем примере вы объявили Columns = 3, и вы добавили только два элемента управления. Но если вы добавите еще один элемент управления, он поместится в конце.
<UniformGrid Name="uniformGrid1"
Rows="2"
Columns="3">
<Button Content="Rohit"
Margin="2" />
<Button Content="asit"
Margin="2" />
<Button Content="asit"
Margin="2" />
</UniformGrid>
Ответ 2
Как показано в статье MSDN для UniformGrid, нет прикрепленного свойства Grid.Row
или Grid.Column
.
Вместо этого Intellisense может предлагать это, потому что у вас есть Grid
дальше по дереву документов. Если бы это было вложенное свойство, его было бы гораздо более правдоподобно называть UniformGrid.Row
, так как к нему можно получить доступ к связанным свойствам.