Вы, возможно, могли бы написать свою собственную панель , или, возможно, даже потомок Grid, которая делает ваш собственный макет с межстрочным интервалом. Это было бы неплохо.
Вот что я обычно делаю вместо этого, чтобы добиться того же. Предположим, я хочу интервал в 3 пикселя. Вы можете сделать это, применяя поле в 1,5 пикселя к каждой ячейке (таким образом, общее пространство между ячейкой и ее соседом составляет 1,5 + 1,5 = 3 пикселя), а затем еще одно поле в 1,5 пикселя вокруг всей сетки, чтобы внешний край был правильным Поле 1,5 пикселя вокруг ячейки + поле 1,5 пикселя вокруг сетки = 3 пикселя). XAML выглядит так:
<Grid Margin="1.5">
...
<Label Grid.Row="0" Grid.Column="0" Margin="1.5">...</Label>
<TextBox Grid.Row="0" Grid.Column="1" Margin="1.5">...</TextBox>
...
</Grid>
Это некрасиво, но работает.
Если большинство элементов управления в вашей таблице имеют один и тот же тип (например, если это все метки или все метки и текстовые поля), то вы можете использовать стили вместо объявления и повторного объявления поля для каждого элемента в сетка:
<Grid Margin="1.5">
<Grid.Resources>
<Style TargetType="Label">
<Setter Property="Margin" Value="1.5"/>
</Style>
<Style TargetType="TextBox">
<Setter Property="Margin" Value="1.5"/>
</Style>
</Grid.Resources>
...
<Label Grid.Row="0" Grid.Column="0">...</Label>
<TextBox Grid.Row="0" Grid.Column="1">...</TextBox>
...
</Grid>
На самом деле, я обнаружил на практике, что мне часто нужны неравные поля - например, мне может понадобиться 3-пиксельное поле вокруг верха, слева и справа, но без поля снизу (потому что элементы управления ниже у него уже есть свой запас). Поэтому я обычно не использую 1,5 пикселя вокруг; Я обычно заканчиваю чем-то более сложным. Итак, я понимаю, почему они не добавили CellSpacing; это упростило бы простые случаи, но было бы бесполезным в более сложных макетах.
Но половинные поля - это быстрый способ достичь CellSpacing, и тогда вы можете настроить поля, если вам нужно что-то более необычное.