根据其内容调整列表框项目的宽度
Adjust ListBox items width based on its content
<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>
我按照上面的方法添加了ListBoxItem
s,用UniformGrid
来显示。但我无法为每个列表框项目实现基于内容的宽度。我已经尝试 HorizontalContentAlignment
作为 Stretch
和 Auto
宽度属性。什么都没发生。
您必须使用 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
。可能的值为 Left
、Right
、Center
和 Stretch
。除 Stretch
之外的所有值都将根据内容调整大小。
<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>
我按照上面的方法添加了ListBoxItem
s,用UniformGrid
来显示。但我无法为每个列表框项目实现基于内容的宽度。我已经尝试 HorizontalContentAlignment
作为 Stretch
和 Auto
宽度属性。什么都没发生。
您必须使用 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
。可能的值为 Left
、Right
、Center
和 Stretch
。除 Stretch
之外的所有值都将根据内容调整大小。