Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确保WPF网格中的列具有最小宽度?_Wpf - Fatal编程技术网

如何确保WPF网格中的列具有最小宽度?

如何确保WPF网格中的列具有最小宽度?,wpf,Wpf,我正在WPF中创建一个简单的GUI: 我已经将三个GUI元素安排在一个网格中。 当我调整窗口大小时,我希望第一列和最后一列的宽度保持不变,中间列的大小占据所有剩余的宽度。 不幸的是,我把窗户弄得很窄;按钮隐藏: 我做错了什么 <Grid> <Grid Margin="10,0,10,10" MinWidth="200"> <Grid.ColumnDefinitions> <ColumnDefinitio

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

我已经将三个GUI元素安排在一个网格中。 当我调整窗口大小时,我希望第一列和最后一列的宽度保持不变,中间列的大小占据所有剩余的宽度。 不幸的是,我把窗户弄得很窄;按钮隐藏:

我做错了什么

<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>

如果不应将窗口调整为小于某个宽度,请在窗口属性中定义该宽度

如果要在窗口小于某个大小(网格大小)时显示ScrollViewer,请添加ScrollViewer

编辑:

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

将网格命名为:

<Grid x:Name="MyGrid">

如果窗口大小小于标签和按钮的大小,会发生什么情况?按钮消失,因为窗口太小。我希望窗口拒绝将大小调整为小于此值的宽度。是否尝试将MinWidth添加到窗口(而不是网格)?将窗口的MinWidth设置为240有效。在WPF中是这样做的吗?看起来很麻烦:我必须从所有元素计算窗口的最小宽度。如果WPF为我这样做,我会更愿意:我指定第3列的MinWidth为85。然后WPF计算出窗口的最小宽度是240。是的。。。这不是它的工作原理。。。如果你在窗口中添加1000个项目,那么你肯定需要一些大屏幕。谢谢你的帮助。不幸的是,通过此更改,窗口的大小将不会调整为小于宽度(大约=600像素)!?
 MinWidth="{Binding ElementName=MyGrid, Path=ActualWidth, Mode=OneTime}"