5

我正在使用WrapGridas itemscontrolin aListView以使用以下 XAML 代码 (WinRT) 水平呈现项目

<ItemsPanelTemplate >
    <WrapGrid x:Name="ContentGrid" MinWidth="200" MinHeight="0" VerticalAlignment="Top"   HorizontalAlignment="Center"   Orientation="Horizontal" Margin="0,0,0,5" >                                     
    </WrapGrid>
</ItemsPanelTemplate>

现在,当宽度大于并且不能水平添加更多项目时,我如何水平拉伸项目。MinWidth(所有项目都对齐中心,水平两侧有很多空间)

<DataTemplate x:Key="CustomChildItemTemplete">
   <Grid Background="Red">
   </Grid>
</DataTemplate >

更多详细信息:listview宽度约为 800(大约)时,它显示 4 个水平项目(最小项目宽度为 200),但如果宽度为 900(4 个项目可见)并且空白区域(50 像素)位于左右,itemscontrol我如何通过增加项目宽度来删除这个空白空间(当listview宽度为 900 时,项目宽度必须为 225)

4

1 回答 1

3

最简单的方法是像这样绑定MinWidth

<ItemsControl x:Name="MyItemsControl">
  <ItemsPanelTemplate >
      <WrapGrid x:Name="ContentGrid" MinWidth="{Binding Path=Width,  MinWidth="{Binding RelativeSource={RelativeSource Mode=Self}, Converter={StaticRessource Myconverter}, ConverterParameter=[Here Nb of object that you want in one line]}" MinHeight="0" VerticalAlignment="Top"   HorizontalAlignment="Center"   Orientation="Horizontal" Margin="0,0,0,5" >                                     
      </WrapGrid>
  </ItemsPanelTemplate>
</ItemsControl>

转换器只需将 itemsControl 的宽度除以参数(一行中您想要的对象的 Nb)。所以对象会自动达到你想要的大小!

于 2012-11-07T09:05:59.887 回答