如何使我的ItemsControl项目以交错的包装形式出现

时间:2016-03-21 23:58:02

标签: wpf

下面的代码为我提供了一个项目网格,即使每个项目自然具有不同的高度。据说我应该设定一些东西的高度,但我不知道那是什么东西,或者我得到了我需要的价值。

I want    I get
a  c      a c
a  c      a c
a  d      a .
b  d      b d
b  d      b d
          . d

代码:

      <ItemsControl  ItemsSource="{Binding XPath=*}" Margin="20,0,0,0">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel 
                       Orientation="vertical" <!-- edit: adding this line solved it -->
                     />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
              <DataTemplate>
                <W3V:ControlChooser Content="{Binding}"/>
              </DataTemplate>
            </ItemsControl.ItemTemplate>
  </ItemsControl>

1 个答案:

答案 0 :(得分:1)

如果商品订单不需要从左到右,那么更改WrapPanel.Orientation就足够了。

修改:刚刚测试过,它可以正常运行:

enter image description here

基础代码:

<ItemsControl ItemsSource="{Binding Users}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="ContentPresenter">
            <Setter Property="Height" Value="{Binding Height}"></Setter>
            <Setter Property="Width" Value="200px"></Setter>
        </Style>
    </ItemsControl.ItemContainerStyle>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Vertical"></WrapPanel>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>