Silverlight (3.0): как добавить заполнение ячеек в сетку? - PullRequest
8 голосов
/ 07 декабря 2009

Как легко добавить заполнение ячейки для сетки в Silverlight? Установка полей для каждой ячейки выглядит очень шумно.

<Grid.RowDefinitions>
  <RowDefinition Height="Auto" />
  <RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
  <ColumnDefinition Width="Auto" />
  <ColumnDefinition Width="*"  />
</Grid.ColumnDefinitions>

<TextBlock Text="Type:" Grid.Column="0" Grid.Row="0"></TextBlock>
<ComboBox Grid.Column="1" Grid.Row="0"></ComboBox>
<TextBlock Text="Length:" Grid.Column="0" Grid.Row="1"  ></TextBlock>
<TextBox  Grid.Column="1"  Grid.Row="1"></TextBlock>

Ответы [ 2 ]

13 голосов
/ 07 декабря 2009

Кто-то может распять меня за уродство этого решения, но вы можете добавить строки и столбцы с установленными высотой и шириной, чтобы удвоить ваши значения заполнения между фактическими строками и столбцами, которые содержат данные:

<Grid> 
<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="4" />
    <RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto" />
    <ColumnDefinition Width="4" />
    <ColumnDefinition Width="*"  />
</Grid.ColumnDefinitions>
<TextBlock Text="test" Grid.Column="0" Grid.Row="0" />
<TextBlock Text="test" Grid.Column="0" Grid.Row="2" />
<TextBlock Text="test" Grid.Column="2" Grid.Row="0" />
<TextBlock Text="test" Grid.Column="2" Grid.Row="2" />
</Grid>
2 голосов
/ 07 декабря 2009

Я лично предпочитаю использовать поля. Чтобы немного его очистить, вы можете преобразовать их в стили. Можно даже пойти еще дальше и использовать диспетчер стилей Implicit.

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

...