如何使ItemsControl中的项内容不拉伸为最宽项的宽度

3
有没有一种方法可以使ItemsControl中的项内容(在这种情况下是边框)不拉伸以适应最宽项的宽度?
看这里:
CURLIN是最宽的项。 RAGAIN和WALKUP更短,但无论我尝试任何itemsPanel或itemTemplate,它们都会拉伸到CURLIN的宽度。有办法解决吗?
代码:
<ItemsControl ItemsSource="{Binding CarbonCopyRecipients}">
    <ItemsControl.ItemsPanel>
         <ItemsPanelTemplate>
               <StackPanel Orientation="Vertical" HorizontalAlignment="Left"/>
         </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
         <DataTemplate >
               <Border ...... />
         </DataTemplate >
    </ItemsControl.ItemTemplate>
</ItemsControl>

DataTemplate中,放置一个StackPanel并将其子项水平排列即可满足您的需求。 - Sankarann
ItemsControl.Width = 100 可以防止 ItemsControl 拉伸 :-) 只需设置固定宽度即可。 - dev hedgehog
1个回答

2

既然我猜对了你需要什么并且当然也是爱虚荣的,那么这里就给你:

StackPanel中的子元素将填充由最大对象设置的可用空间,除非您明确告诉它们不要这样做或已经设置了模板来执行相同的操作。

因此,在ItemTemplate的最外层容器(在本例中为Border)上设置HorizontalAlignment="Left"将告诉它紧贴边缘而不是伸展以适应其可能消耗的可用空间。

通俗易懂的版本:告诉它只占用所需的空间。 :)

希望能有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接