GridSplitter изменяет размеры неправильно
На Page
производный класс, у меня есть несколько вложенных гридов.
Я изменил ColumnDefinition
шириной в несколько пикселей (т.е. около 5), причем некоторые столбцы имеют ширину "*".
Все элементы имеют Width="Auto"
,
Вот мой сплиттер:
<Grid Margin="10"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Grid.Background="SpringGreen">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5" />
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="5" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="5*" />
</Grid.RowDefinitions>
<GridSplitter Grid.Row="1"
Grid.Column="3"
Width="Auto"
Height="Auto"
Margin="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Red"
BorderThickness="1,0"
Cursor="SizeWE"
RenderTransformOrigin="-1,1"
ShowsPreview="True" />
</Grid>
Так что проблема в том, что он практически не изменяет размеры слева, но очень сильно вправо. Это не зависит от размера окна, даже в полноэкранном режиме, разделитель позволяет только несколько пикселей влево.
-edit- Есть ли известные проблемы, которые я сам не нашел (в гугле)? Кто-нибудь испытывал подобное странное поведение?
-edit update- Нашел минимальное определение для сетки, чтобы воспроизвести проблему.
1 ответ
У вас есть 3 столбца шириной 5 между двумя столбцами *-width. GridSplitter
находится в середине этого. Он работает путем изменения размера предыдущего столбца (то есть первого из ваших 5-пиксельных столбцов). Вы не можете изменить размер влево, потому что этот столбец имеет ширину всего 5 пикселей.
Помни что Row
а также Column
свойства начинаются с нуля.