我有一个WPF网格,其中四列只包含一个GridSplitter。其中两列(0和3)是可伸缩的,但是一个可伸缩列不与GridSplitter(第2列)直接相邻。
第0列和第3列必须具有相同的初始大小。所以我不能将第0列和第1列放在嵌套网格中。
我该如何解决这个问题?
<Grid Height="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Rectangle Grid.Column="0" Fill="Blue" Margin="8" />
<Rectangle Grid.Column="1" Fill="Yellow" Margin="8" Width="24" />
<GridSplitter Grid.Column="2" Width="8" VerticalAlignment="Stretch" />
<Rectangle Grid.Column="3" Fill="Red" Margin="8" />
</Grid>
编辑:我在nickolay.laptev
的帮助下解决了这个问题<Grid Height="40">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Rectangle Grid.Column="0" Fill="Blue" Margin="8" />
<Rectangle Grid.Column="1" Fill="Yellow" Margin="8 8 16 8" Width="24" />
<GridSplitter Grid.Column="1" Width="8" VerticalAlignment="Stretch" HorizontalAlignment="Right" ResizeBehavior="PreviousAndNext" />
<Rectangle Grid.Column="2" Fill="Red" Margin="8" />
</Grid>
答案 0 :(得分:2)
我提供两种选择:
它解决了我的问题。
答案 1 :(得分:0)
像这样的东西
<ColumnDefinition Width="{Binding ElementName=sizedColumn.ActualWidth}" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" x:Name="sizedColumn"/>
但是你需要添加一个多转换器,并且还要传递窗口大小和列1大小。