拉伸WrapGrid项目宽度

Vib*_*nRC 5 c# xaml microsoft-metro windows-8 windows-runtime

我使用的是WrapGrid作为itemscontrol在一个ListView与下面的XAML代码水平呈现项目(WinRT的)

<ItemsPanelTemplate >
    <WrapGrid x:Name="ContentGrid" MinWidth="200" MinHeight="0" VerticalAlignment="Top"   HorizontalAlignment="Center"   Orientation="Horizontal" Margin="0,0,0,5" >                                     
    </WrapGrid>
</ItemsPanelTemplate>
Run Code Online (Sandbox Code Playgroud)

现在,当宽度超过并且可以水平添加更多项目时,如何水平拉伸项目MinWidth.(所有项目都与中心对齐,水平两侧有很多空间)

<DataTemplate x:Key="CustomChildItemTemplete">
   <Grid Background="Red">
   </Grid>
</DataTemplate >
Run Code Online (Sandbox Code Playgroud)

更多细节:listview宽度大约为800(大约)时,它显示4个水平项目(最小项目宽度为200)但如果宽度为900(可见4个项目),则空白区域(50 px)位于右侧和左侧的itemscontrol,如何可以通过增加产品宽度删除此空白空间(简单地产品宽度必须是225时listview宽度900)

Nic*_*ron 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>
Run Code Online (Sandbox Code Playgroud)

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