Windows 8 GridView最大项目(根据屏幕大小)

时间:2014-11-06 12:13:07

标签: c# xaml windows-8 microsoft-metro

我正在为Windows 8创建一个应用程序(不是8.1)。

我想以类似于Windows应用商店应用的方式在屏幕上显示一些内容。

我目前正在使用GridView,但如果需要,也可以使用其他控件。

我需要的是 -

在小屏幕上,Windows商店仅显示一个类别中的6个项目,如下所示 -

6 items on small screen

在较大的屏幕上显示9项如下 -

enter image description here

我想添加类似的实现,但我不知道如何。

当屏幕很小时,我是否只需要设置6个项目作为GridView的源,当屏幕很大时,我需要设置9个项目吗?或者GridView可以自动显示尽可能多的项目,可以在3列中看到" n"行数??

以下是我的GridView的示例代码 - 我使用WrapGrid将列数限制为3

<Grid Name="MyGrid">
    <GridView Name="MyGridView">
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="3" />
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
    <GridView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Image Source="{Binding Icon}" Margin="10" Stretch="Uniform" Width="150" Height="150" />
            </Grid>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

1 个答案:

答案 0 :(得分:0)

也许您可以创建附加行为并将其附加到ItemsWrapGrid上。该行为将侦听SizeChanged并根据项的可用空间和大小自动更改MaximumRowsOrColumns属性