我有一种情况,网格的第一列应该占用网格的剩余空间,但我希望用户可以使用GridSplitter调整最后一列的大小。
以下是布局的简化示例:
<?xml version='1.0' encoding='utf-8' ?>
<Window
x:Class="WPFApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="500">
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Border BorderBrush="Black"
BorderThickness="1" />
<Border BorderBrush="Black"
BorderThickness="1"
Width="20"
Grid.Column="2" />
<GridSplitter HorizontalAlignment="Center"
VerticalAlignment="Stretch"
Width="10"
Grid.Column="3" />
<Border BorderBrush="Black"
BorderThickness="1"
Grid.Column="4" />
</Grid>
</Window>
在此示例中,边框位于此处以查看列的内容。
此示例不起作用,因为移动GridSplitter会更改左侧列的大小,但右侧的最后一列应调整大小。
有没有人可以解决这个问题?
答案 0 :(得分:1)
你可以嵌套两个网格。
外部网格:
*
,auto
,100
)子网格:
*
,10
,auto
)此子网格包含问题中前3列的内容。
这样,分割器就会在子网格和最后一列之间进行分割。
因为第一列的宽度设置为*
,所以它会获得剩余的宽度。