C# 设置网格列宽度=自动和最大宽度
是否可以将Gridcolumn设置为这样的行为。宽度为自动,但最大值为140。此列中有许多标签,内容根据用户语言的不同而变化。所以我想设置一个最大宽度。就像这样,它不起作用:C# 设置网格列宽度=自动和最大宽度,c#,wpf,grid,C#,Wpf,Grid,是否可以将Gridcolumn设置为这样的行为。宽度为自动,但最大值为140。此列中有许多标签,内容根据用户语言的不同而变化。所以我想设置一个最大宽度。就像这样,它不起作用: <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" MaxWidth="140"/> <ColumnDefinition Width="*"/>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MaxWidth="140"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
它看起来像什么:
如您所见,文本框非常小
下面的代码在我的机器上运行,并告诉我它是否正确
<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>
你可以试着在网格上设置一个宽度,这个列应该在那里被切掉。如果我这样做,它总是保持在140。因此,如果没有一个标签的长度超过这个长度,那么总有一个空格。这就是为什么我想使用Auto。请解释一下你所做的有什么不对?好吧,如果我这样离开它,如果第一列中的a标签变得很大,第二列将缩小到你看不到任何东西的程度。如果我在第二列设置一个MinWidth,第三列将被挤出视图。听起来你的这段代码是对的,但不知怎的,一个单元格要求的是lotta宽度。。。你能分享第一列单元格内的内容吗?看起来是正确的。但我不能复制它。我复制了你的代码,但结果保持不变。你能告诉我你改变了什么吗?
<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>