2

有没有办法确保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每一列的长度不同,每一行WidthName列的长度也不同。因此,第二列从不同的 x 位置开始。

4

1 回答 1

4

您可以像这样使用SharedSizeGroup属性ColumnDefinition

<ColumnDefinition SharedSizeGroup="A"/>

也看看这个:Grid Size Sharing in WPF

于 2015-09-16T13:06:50.417 回答