我正在开发一个简单的应用程序,它在一个单元格中使用带有DataGrid的Grid布局。奇怪的是,DataGrid坚持要使其第一列的宽度比其内容小很多,尽管它设置为“”。问题似乎来自网格列宽度“”:如果我将其更改为像素值,则DataGrid的行为与预期一致。
其他一些帖子建议将DataGrid
属性HorizontalAlignment
或HorizontalContentAlignment
设置为Stretch
,或禁用HorizontalScrollBarVisibility
,但这些都不适用于这种情况。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Content="Some specific width of content that's reasonably long"/>
<DataGrid ItemsSource="{Binding Data}"
AutoGenerateColumns="False"
HeadersVisibility="None"
Grid.Row="1" Grid.Column="0">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"
Width="*"/>
<DataGridTextColumn Binding="{Binding Cost}"/>
</DataGrid.Columns>
</DataGrid>
<Label Content="Some specific width of content that's reasonably long"/>
<DataGrid ItemsSource="{Binding Data}"
AutoGenerateColumns="False"
HeadersVisibility="None"
Grid.Row="1" Grid.Column="1">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}"
Width="*"/>
<DataGridTextColumn Binding="{Binding Cost}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
上面的代码产生了这种布局:https://imgur.com/a/cZcBUtD。左侧的DataGrid
表现出我预期的方式,但仅仅因为它的GridColumn
宽度设置为“300”。为什么有一个“*”的GridColumn width
导致右侧显示的DataGrid
不同?
我刚刚尝试重新创建这个问题,但它似乎对我来说很好。这是否在另一个可能影响行为的网格中?