2015-12-18 44 views
3
<GridView ItemsSource="{Binding SomeSource}" > 
    <GridView.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapGrid Orientation="Horizontal" HorizontalChildrenAlignment="Stretch"/> 
     </ItemsPanelTemplate> 
    </GridView.ItemsPanel> 
    <GridView.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <ContentControl> 
        <!--hidden for simplicity--> 
       </ContentControl> 
      </Grid> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 

HorizontalChildrenAlignment="Stretch"在WrapGrid中没有作用?我怎样才能使网格项对齐的方式,最左边的项目将保持在WrapGrid的左边界,而最右边的项目将保持在WrapGrid的右边界,额外的空间均匀分布在网格之间项目?Horizo​​ntalChildrenAlignment =“Stretch”在WrapGrid中不起作用

当前,网格项之间的空间是网格项中指定的边距,并且如果剩余空间不足以放入另一个网格,则最右边的项与WrapGrid的右边框之间存在较大间距项目。理想情况下,我们希望额外的空间均匀地分布在网格项之间,而不是在最右侧的网格项右侧留下剩余空间。

回答

2

我认为你在找什么?

<WrapGrid Orientation="Horizontal" VerticalChildrenAlignment="Stretch"/> 

不是水平的,而是VerticalChildrenAlignment。我必须补充一点,如果没有至少一个包装物品,它会显得很奇怪,因为水平调整会使物品“跳跃”

+0

这是我正在寻找的确切行为。真棒。 – user3729779

+0

你好。你能否提供一些关于此事的更多信息?使用提供的XAML代码,随着总空间的增加,项目和它们之间的空间会变大。是否有可能以某种方式调整WrapGrid,以便调整元素的大小以填充horiazontal空间(而不是创建/扩大项目之间的空间)? –

0

WrapGrid现在没有这种动态功能。如果要显示固定数量的项目,则可以手动计算最佳边距。

其他选项是从GridView切换到Grid和adapt the WPF code shown here.但是这不是完全动态的解决方案,因为您需要定义每行显示的项目数。

相关问题