GridView有两列Win Phone 8.1

时间:2015-06-12 13:14:46

标签: xaml windows-phone-8.1

我目前正在学习Windows Phone 8.1应用开发。我正在浏览这个Channel 9 series视频教程。它们很有用,但遗憾的是适用于Windows Phone 8,不是8.1 ,因此有些事情我无法遵循。我被困在such a situation

我想通过一些数据驱动以下布局:

two column layout

到目前为止,我有以下代码:

<Pivot x:Uid="Pvt">
  <PivotItem Header="{Binding Animals.Title}">
    <GridView ItemsSource="{Binding Animals.Items}">
      <GridView.ItemTemplate>
        <DataTemplate>
          <!-- not sure what would go in here -->
        </DataTemplate>
      </GridView.ItemTemplate>
    </GridView>
  </PivotItem>
</Pivot>

但不确定我在<DataTemplate>中应该包含哪些元素!

1 个答案:

答案 0 :(得分:1)

Gridview在Windows Phone应用程序中运行良好。以下是应用商店中我的某个应用的代码。您需要设置DataTemplate最外层'Grid'的大小。除非在加载UI后进行一些动态调整,否则您将无法使网格完全适合屏幕。

<GridView Grid.Row="2" Margin="0,0,0,0"
        ItemsSource="{Binding InfoTypeList}"
        SelectionMode="None"
        IsItemClickEnabled="True"
        ItemClick="GridView_ItemClick">
        <GridView.ItemTemplate>
            <DataTemplate>
                <Grid HorizontalAlignment="Left" Width="120" Height="120">
                    <Border Background="{ThemeResource PhoneAccentBrush}">
                        <Image Source="{Binding ImagePath}" Stretch="Uniform" Margin="10,10,10,20"/>
                    </Border>
                    <StackPanel VerticalAlignment="Bottom">
                        <TextBlock Text="{Binding Name}" Foreground="{ThemeResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource BaseTextBlockStyle}" FontSize="18" HorizontalAlignment="Center" FontWeight="SemiBold" IsTextScaleFactorEnabled="False"/>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
        <GridView.ItemContainerStyle>
            <Style TargetType="FrameworkElement">
                <Setter Property="Margin" Value="20 20 0 0"/>
            </Style>
        </GridView.ItemContainerStyle>
    </GridView>

编辑: 我玩了它,你可以通过将GridView包装在Viewbox中然后通过将其添加到GridView来限制行数来使它看起来更像你的图片(使项目适合屏幕):

            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapGrid Orientation="Vertical" MaximumRowsOrColumns="2" />
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>

您必须使用边距来获得正确的间距。