C# Wpf网格和可见性

C# Wpf网格和可见性,c#,wpf,C#,Wpf,我正在创建一个表单,它将并排显示给控件,如下面的示例。 问题是,当我将一个控件的可见性设置为“折叠”时,另一个控件不会填充所有窗口 <Window x:Class="Example" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="h

我正在创建一个表单,它将并排显示给控件,如下面的示例。 问题是,当我将一个控件的可见性设置为“折叠”时,另一个控件不会填充所有窗口

<Window x:Class="Example"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" 
        WindowStartupLocation="CenterScreen"
        Height="600" Width="600">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Button>Button 1</Button>
        <Button Grid.Column="1" Visibility="Visible">Button 2</Button>
    </Grid>
</Window>
按钮2折叠时:

+---------------------+
|          |          |  
|          |          |  
|          |          |  
| Button 1 |          |  
|          |          |  
|          |          |  
|          |          |  
+---------------------+
期望的:

+---------------------+
|                     |  
|                     |  
|                     |  
|      Button 1       |  
|                     |  
|                     |  
|                     |  
+---------------------+
正如@Clemens所建议的:

UniformGrid
可以执行以下操作:

<UniformGrid Rows="1" >
    <Button>Button 1</Button>
    <Button Visibility="Visible">Button 2 </Button>
</UniformGrid>

按钮1
按钮2
你可以试试

<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <Button>Button 1</Button>
        <Button Grid.Column="1" Visibility="Visible">Button 2</Button>
    </Grid>

按钮1
按钮2

您是否尝试过使用列宽来自动使用
width=“*”
对于两列,这意味着它们都将始终获得50%。@GWigWam,还有另一种方法吗?使用不同的面板,例如UniformGrid。
<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
        <Button>Button 1</Button>
        <Button Grid.Column="1" Visibility="Visible">Button 2</Button>
    </Grid>