Вертикальный и горизонтальный GridSplitter
У меня есть сетка, и я пытаюсь поставить вертикальные и горизонтальные GridSplitters. Это моя основная сетка, и я бы хотел, чтобы она была как можно более плавной.
На моем втором определении я получаю "Установщик отсутствующего Grid.Column для не первого ребенка"
Я нашел множество документации по реализации одного или другого. Я не нашел ничего, что подсказывало бы, что я могу сделать оба. Но наша индустрия состоит из людей, желающих расширить функциональность.
Вот мой XAML:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="5"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50*"></RowDefinition>
<RowDefinition Height="5"></RowDefinition>
<RowDefinition Height="50*"></RowDefinition>
</Grid.RowDefinitions>
<GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Stretch"></GridSplitter>
<GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch"></GridSplitter>
1 ответ
Вам нужно установить Grid.Column для разделителей сетки, а также вам нужно
HorizontalAlignment="Stretch" -> for horizontal splitter
VerticalAlignment="Stretch" -> for Vertical splitter
так ваш код выглядит как -
<GridSplitter Grid.Column="1" Width="5" Grid.RowSpan ="3" VerticalAlignment="Stretch"></GridSplitter>
<GridSplitter Grid.Row="1" Height="5" Grid.ColumnSpan ="3" HorizontalAlignment="Stretch"></GridSplitter>
ResizeHehavior="PreviousAndNext"
необходимо добавить, чтобы обеспечить правильную настройку столбцов и строк. Ниже мой образец.
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*"></ColumnDefinition>
<ColumnDefinition Width="5"></ColumnDefinition>
<ColumnDefinition Width="50*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50*"></RowDefinition>
<RowDefinition Height="5"></RowDefinition>
<RowDefinition Height="50*"></RowDefinition>
</Grid.RowDefinitions>
<GridSplitter Grid.Column="1" Width="5" Grid.RowSpan ="3"
VerticalAlignment="Stretch" ResizeBehavior="PreviousAndNext">
</GridSplitter>
<GridSplitter Grid.Row="1" Height="5" Grid.ColumnSpan ="3"
HorizontalAlignment="Stretch" ResizeBehavior="PreviousAndNext">
</GridSplitter>
<Button Grid.Row="0" Grid.Column="0" Content="1,1" FontSize="30"/>
<Button Grid.Row="2" Grid.Column="0" Content="3,1" FontSize="30"/>
<Button Grid.Row="0" Grid.Column="2" Content="1,3" FontSize="30"/>
<Button Grid.Row="2" Grid.Column="2" Content="3,3" FontSize="30"/>
</Grid>
Вы можете установить направление следующим образом:
<GridSplitter ResizeDirection=”Rows”/>
или же
<GridSplitter ResizeDirection=”Columns”/>
Однако, когда вы устанавливаете выравнивание в горизонтальное или вертикальное положение, по умолчанию ResizeDirection=”Auto”, скорее всего, будет выбрано направление изменения размера фитинга.