如何更改GridView布局中的列数

时间:2014-09-17 15:12:10

标签: xaml windows-runtime

我的Metro应用程序具有以下布局:

 <!-- Horizontal scrolling grid -->
    <GridView 

            x:Name="itemGridView"
            AutomationProperties.AutomationId="ItemsGridView"
            AutomationProperties.Name="Items"
            TabIndex="1"

            Padding="116,136,116,46"
            ItemsSource="{Binding Source={StaticResource MyMenu}}"
            SelectionMode="None"
            IsSwipeEnabled="false"
            IsItemClickEnabled="True"

            ItemClick="ItemView_ItemClick" FontSize="12" FontStyle="Italic" HorizontalAlignment="Left" >

      <GridView.ItemTemplate>
        <DataTemplate >
          <Grid HorizontalAlignment="Left" Width="250" Height="250"  Background="Transparent">

            <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}" />

            <StackPanel VerticalAlignment="Bottom" Background="Transparent" >
            <TextBlock Text="{Binding Description}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" 
                         Style="{StaticResource GroupHeaderTextStyle}"  Margin="15,0,15,10" FontSize="20" TextAlignment="Center"/>
            </StackPanel>
          </Grid>
        </DataTemplate>
      </GridView.ItemTemplate>
    </GridView>
  </Grid>

事情是这个网格中的项目现在显示如下:
X X
X
虽然我希望他们看起来像这样 X X X

1 个答案:

答案 0 :(得分:1)

首先,当我看到困难的TabIndex和疯狂的填充物时,我立即认为某些人有一个草率的布局和混淆的DOM,但这只是一个评论。

但是,对于您的问题,您只需指定适合您需要的ItemsPanel来指导您如何布置其子项目。

所以更像这样的内容会与现有的ItemTemplate;

一起添加到其中
<GridView.ItemsPanel>
   <ItemsPanelTemplate>
       <StackPanel Orientation="Horizontal"/>
   </ItemsPanelTemplate>
</GridView.ItemsPanel>

希望这有帮助,欢呼!