在我的页面的特定父控件中,我想要水平布局一些子控件(比如说矩形),以便每个控件具有相同的宽度并具有最大宽度。 这意味着,给定一个大的父控件:
因为父控件必须绑定到一个集合,所以我开始写这个:
<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的新手,我无法看到我应该使用哪个面板(自定义与否?)或如何实现我所描述的内容。
答案 0 :(得分:1)
您可以尝试
<UniformGrid Rows="1"> </UniformGrid>
替换StackPanel。如果SilverLight拥有它,我正在谈论WPF。
答案 1 :(得分:1)
+1为UniformGrid的想法。
对于添加或删除项目的动画,请查看此帖子/ MIX演示文稿。
答案 2 :(得分:0)
听起来你可以使用Wrap Panel。 Jesse Liberty有一篇很好的博客文章,解释了如何使用它。