5

次の XAML コード (WinRT) で項目を水平に表示するためにWrapGridas itemscontrolin aを使用しています。ListView

<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 >

詳細:幅が約 800 (約) の場合、listview水平方向に 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 の幅をパラメーター (1 行に含めるオブジェクトの数) で割るだけです。したがって、オブジェクトは自動的に必要なサイズになります。

于 2012-11-07T09:05:59.887 に答える