WPF: как объединить строки в столбце (альтернатива rowspan)?
есть ли способ объединить строки в определенном столбце? Следовательно, чтобы получить что-то вроде этого (в настоящее время я использую rowspan на элементе управления, т. е. изображение, но есть ли лучший способ?)
--------------------
| |--------|
| |--------|
| |--------|
| |--------|
| |--------|
--------------------
Я использую этот код в основном
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="28" />
<RowDefinition Height="28" />
<RowDefinition Height="28" />
<RowDefinition Height="*" />
<RowDefinition Height="28" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="124" />
<ColumnDefinition Width="246*" />
</Grid.ColumnDefinitions>
что дает мне что-то вроде этого (обратите внимание, что строки также появляются в столбце 0)
--------------------
|---------|--------|
|---------|--------|
|---------|--------|
|---------|--------|
|---------|--------|
--------------------
Теперь я могу обойти это, например, если я хочу разместить изображение, я могу использовать RowSpan, но невозможно создать столбец без строк и другие столбцы строк?
3 ответов
Это невозможно с Grid
управление. Строки проходят через все столбцы, а столбцы проходят через все строки. Как вы обнаружили,RowSpan
и ColumnSpan
позволяет иметь контрольный диапазон нескольких строк или столбцов соответственно.
еще один потенциальный обходной путь-разместить один Grid
другой:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image/>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
</Grid>
Как насчет чего-то вроде этого:
<StackPanel Orientation="Horizontal">
<Grid Height="100" Width="50"></Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
</Grid>
</StackPanel>
попробуйте использовать прямоугольник для объединения 6 строк.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="28" />
<RowDefinition Height="28" />
<RowDefinition Height="28" />
<RowDefinition Height="*" />
<RowDefinition Height="28" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="124" />
<ColumnDefinition Width="246*" />
</Grid.ColumnDefinitions>
<Rectangle Grid.RowSpan="6"/>
</Grid>