0
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid   Rows="1" >                    
            </UniformGrid>                    
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBoxItem HorizontalContentAlignment="Stretch">listbox item 1</ListBoxItem>
    <ListBoxItem>listbox item 2</ListBoxItem>
    <ListBoxItem>listbox item 3</ListBoxItem>
    <ListBoxItem>listbox item 4</ListBoxItem>
    <ListBoxItem>listbox item 5</ListBoxItem>
</ListBox>

上面我加了ListBoxItems,用来UniformGrid显示。但我无法为每个列表框项实现基于内容的宽度。我试过HorizontalContentAlignmentasStretchAutowidth 属性。没啥事儿。

4

1 回答 1

0

您必须使用HorizontalAlignment而不是HorizontalContentAlignment.

<ListBoxItem HorizontalAlignment="Left">listbox item 1</ListBoxItem>

如果要为所有项目设置对齐方式,请考虑创建项目容器样式。

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
   <ListBox.ItemContainerStyle>
      <Style TargetType="{x:Type ListBoxItem}">
         <Setter Property="HorizontalAlignment" Value="Left"/>
      </Style>
   </ListBox.ItemContainerStyle>
   <!-- ...your code. -->
</ListBox>

请注意,默认值HorizontalAlignment已经是Stretch,因此您不会看到其中的差异。此外,没有Auto. 可能的值为LeftRight和。除将按内容调整大小之外的所有值。CenterStretchStretch

于 2021-02-15T08:22:07.303 回答