如何确保WPF网格中的列遵守最小宽度?

时间:2019-02-07 10:04:31

标签: wpf

我正在WPF中创建一个简单的GUI:

enter image description here

我已经将三个GUI元素排列在一个网格中。 调整窗口大小时,我希望第一列和最后一列的宽度保持不变,而中间一列的大小则采用所有剩余宽度。 不幸的是,当我使窗口变窄时;该按钮被隐藏了:

enter image description here

我在这里做什么错了?

<Grid>
    <Grid Margin="10,0,10,10" MinWidth="200">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100" />
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="85" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*" />
        </Grid.RowDefinitions>
        <Button Content="Select..." Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Width="75" MinWidth="75"/>
        <TextBox Margin="0,0,0,0" TextWrapping="Wrap" Text="" Width="Auto" Height="20" Grid.Column="1"/>
        <Label Content="File path:" HorizontalAlignment="Center" Margin="0,0,0,0" VerticalAlignment="Center"/>
    </Grid>

1 个答案:

答案 0 :(得分:1)

如果不应将窗口的大小调整为小于某个宽度,请在“窗口”属性中进行定义。

如果要在窗口变得小于特定大小(网格大小)时显示ScrollViewer,则添加ScrollViewer

编辑:

您可以做的是绑定窗口。MinWidth=网格的实际宽度。

为网格命名:

<Grid x:Name="MyGrid">

然后像这样绑定窗口中宽度:

 MinWidth="{Binding ElementName=MyGrid, Path=ActualWidth, Mode=OneTime}"