在我的页面的特定父控件中,我想水平布局一些子控件(比方说矩形),以便每个控件具有相同的宽度并且具有最大宽度。 这意味着,给定一个大的家长控制:用什么xaml代码来获得这种布局?
- 如果只有一个孩子的控制,也不会跨越整个父,但将有它的宽度设置为最大宽度。
- 在添加子控件之后,在某个点上,这些最大宽度的总和(对于每个子控件btw都是相同的)将大于父宽度。在这种情况下,总宽度应该除以孩子的数量,每个孩子都会得到这个结果。
因为父控件必须绑定到一个集合,我开始写这篇文章:
<ItemsControl Margin="10" Height="200" ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ChildShape />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我很快意识到,StackPanel的是不是我想要的。
的最终目标是有一个小孩的添加或删除(其他孩子必须滑动并平滑地改变它们的大小。
由于我是新来的Silverlight,我什么也看不见面板(好的动画自定义或没有?)我应该使用或如何能达到什么我描述。
它没有内置到SL框架中,但在线快速搜索将找到某些SL的实现。 http://www.google.com/search?q=uniformgrid+silverlight – foson 2011-02-28 21:15:08
@foson:thx,似乎来自Jeff Wilcox的人可能是一个很好的开始,可以编写和自定义一个面板,以我想要的方式放置我的项目。 – 2011-02-28 22:03:30