SOF Tribe,
我有一个流容器标识的请求,我可以在其中倒入一个不确定数量的动态创建的XAML按钮。所述按钮应尽可能地包裹文本(我想我有一个模板)。但是按钮应该像gridview一样包裹,但是像stackpanel一样运行。有没有人知道一个允许我完成图像描绘的容器?
目前,对于下面的现有图片,我使用的是gridview,但gridview设置了一个特定的宽度,但流量不均匀。 stackpanel具有所需的端到端样式,但不会包装。那么,有什么想法吗?
答案 0 :(得分:2)
Greg Stoll制造了所谓的UniversalWrapPanel。那么,这就是我要采取的方向。然而,现在,我已经有了最后一点要解决的问题。如何获取绑定数据以尊重父容器包装内容的能力,而不仅仅是将其堆叠在垂直列中。
下面的XAML给出了下面的图像结果,这不是我想要的。静态添加按钮对UniversalWrapPanel工作正常。但是,试图让一个绑定和ItemsSource工作,那么,此时我已经超越了我。
<support:UniversalWrapPanel Orientation="Horizontal" Background="White">
<ItemsControl x:Name="GridViewRecipients" ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Style="{StaticResource ButtonLozengeStyle}" Content="{Binding FullName}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</support:UniversalWrapPanel>
好的,所以多搜索一下,我发现了这个:
所以这里是引用ItemsControl中的UniversalWrapPanel的正确方法:
<ItemsControl x:Name="GridViewRecipients" ItemsSource="{Binding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<support:UniversalWrapPanel Orientation="Horizontal" Background="DodgerBlue"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Style="{StaticResource ButtonLozengeStyle}" Content="{Binding FullName}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
结果: