有没有办法确保 Width="auto"
属性考虑列表中所有元素的 Width
,而不是为列表中的每一行单独计算它列表?
<ListBox x:Name="listBox" HorizontalContentAlignment="Stretch" DockPanel.Dock="Top">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0,0,0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" />
<TextBlock Grid.Column="1" Text="{Binding Value}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我尝试了这个,但由于每列的Name
长度不同,每行Name
列的Width
是不同的。因此第二列从不同的 x 位置开始。
最佳答案
您可以使用SharedSizeGroup
ColumnDefinition
中的属性如下所示:
<ColumnDefinition SharedSizeGroup="A"/>
另请看一下:Grid Size Sharing in WPF .
关于c# - WPF ListBox 布局(同时考虑所有行的动态列宽),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32609315/