的Silverlight 2:想要的可变数量的条目占用一个固定的宽度
-
19-08-2019 - |
题
在的StackPanel是不协同操作。我们有一个固定的宽度,和项目的可变数量来布置左到右在其内部。
我们有一个项控件会生出来用栈面板:
<ItemsControl x:Name="testItems"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Stacktest:ItemControl />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
但是,这正确地不尺寸的项目。他们总是相同的大小,不管多少空间可用。如果有太多的项目,他们都在右边切掉,而不是大小,使它们都融入其中的。任何想法如何做到这一点?我会使用一个网格,如果项目的数量是恒定的,但事实并非如此。这是典型地1-4项。
这将是很好如果ItemsPanelTemplate可以与列的可变数目的网格。但我不知道这是否(或者具有相同结果的东西),可以在ItemsPanelTemplate。
是写面板的特殊子类,分配给包含的项相等宽度的答案?
解决方案
我想你想要什么UniformGrid。 您可以表明,它有一个排了,应该布局内的所有项目具有相同的宽度。 这可能不完全是你在找什么,但是这是我能想到的最接近的。
我不知道如果Silverlight工具包提供了这样一个组成部分,但我看到的帖子,说明如何建立一个。
杰夫威尔科克斯的例如博客有一个。
其他提示
我可能是有点老派,但我喜欢做这种类型的事情我自己。 可以在后端写一点代码滴在空间项目的动态数(格子),并使它们一个动态宽度和均匀地隔开。
这可能会工作,你所希望的方式,并tweakable。
不隶属于 StackOverflow