设置网格列宽度=自动和最大宽度

时间:2015-03-31 08:12:48

标签: c# wpf grid

是否可以设置Gridcolumn行为是这样的。 Width为自动,但最大值为140.在此列中有许多标签,具体取决于内容更改的用户语言。所以我想设置一个最大宽度。像这样它不起作用:

<Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" MaxWidth="140"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>

我有一个Grid有三个Columns,第一个和第三个是Labels。第二个是ComboBox / TextBox。第一个和第二个应该是Auto,因此它们适合Content的{​​{1}},第二个应该填满剩余的空间。

UPDATE Complte Code:

Labels

它看起来像什么:

正如您所看到的,<UserControl d:DesignHeight="600" d:DesignWidth="800" KeyboardNavigation.TabNavigation="Local" HorizontalAlignment="Left" VerticalAlignment="Top"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <!--</Grid>--> <GroupBox Header="Einkauf" Height="310" Margin="0,0,5,0" Name="grpLieferadresse" Grid.Column="0" Width="350" KeyboardNavigation.TabNavigation="Local"> <Grid> <Grid.RowDefinitions> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" MaxWidth="140"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <Label Grid.Column="0" Grid.Row="0" Content="Beschaffungsdauer" Name="label5" /> <TextBox Grid.Column="1" Grid.Row="0" IsEnabled="False" Name="txtBeschaffungsdauer" Text="{Binding Path=LName1}" Margin="0,0,0,5" TabIndex="5" /> <Label Grid.Column="2" Grid.Row="0" Content="Tage" Name="label10" /> </Grid> </GroupBox> <GroupBox Header="Bankverbindung" Name="groupBox1" Grid.Column="1" KeyboardNavigation.TabNavigation="Local" Height="310"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="29"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <my:uscBankverbindung Grid.Row="1" x:Name="uscBankverbindung1" TabIndex="10" VerticalAlignment="Top"/> </Grid> </GroupBox> 非常小。

Column Width Problem

1 个答案:

答案 0 :(得分:0)

以下代码适用于我的机器副本并告诉我它是否正确

 <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
        </Grid.ColumnDefinitions>
    <GroupBox Header="Einkauf" Height="310" Margin="0,0,5,0" Name="grpLieferadresse" Grid.Column="0" Width="350" KeyboardNavigation.TabNavigation="Local">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" MaxWidth="140"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <Label Grid.Column="0" Grid.Row="0" Content="Beschaffusdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdngsdauer" Name="label5" />
            <TextBox Grid.Column="1" Grid.Row="0" IsEnabled="False" Name="txtBeschaffungsdauer" Text="{Binding Path=LName1}" Margin="0,0,0,5" TabIndex="5" />
            <Label Grid.Column="2" Grid.Row="0" Content="Tage" Name="label10" />
        </Grid>
    </GroupBox>
    <GroupBox Header="Bankverbindung" Name="groupBox1" Grid.Column="1" KeyboardNavigation.TabNavigation="Local" Height="310">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="29"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>

        </Grid>
    </GroupBox>
    </Grid>

This is what I see with my code