在 WPF 中折叠网格

Vah*_*hid 3 c# wpf grid

我使用下面的代码创建一个带有网格的 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)

在此输入图像描述

Bol*_*olu 5

您告诉Grid将其自身平均分为 3 部分,您需要将最后一列设置为Auto宽度才能实现您想要的(使最后一列与其内容的宽度相匹配):

<Grid.ColumnDefinitions>
      <ColumnDefinition Width="*"></ColumnDefinition>
      <ColumnDefinition Width="*"></ColumnDefinition>
      <ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)