我使用下面的代码创建一个带有网格的 3 列布局。
<Window x:Class="WpfApplication21.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Column="0" Background="Aqua"></Grid>
<Grid Column="1" Background="Red"></Grid>
<Grid Column="2" Background="Yellow"></Grid>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

我不明白的部分是,当我将Visibility第三个网格设置为Collapsed它所占用的空间时,它仍然存在。我希望将剩余空间添加到其他两个网格中。
<Grid Column="2" Background="Yellow" Visibility="Collapsed"></Grid>
Run Code Online (Sandbox Code Playgroud)

您告诉Grid将其自身平均分为 3 部分,您需要将最后一列设置为Auto宽度才能实现您想要的(使最后一列与其内容的宽度相匹配):
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)