在XAML GridView(Win8 / Metro)中水平订购商品

时间:2013-01-10 14:52:40

标签: xaml gridview windows-8 microsoft-metro

如何在XAML中对GridView水平项进行排序? 可悲的是,我找不到实现这一目标的方法。关键字“方向”不可用。 这是我目前的GridView:

            <GridView x:Name="TestDataBinding"
                HorizontalContentAlignment="Left"
                VerticalContentAlignment="Top"
                SelectionMode="None"
                ItemsSource="{Binding}"
                ItemTemplateSelector="{StaticResource itemTemplateSelector}"
                Margin="0,60,0,0"
                Width="1100" Height="540"
            />

另一种方式可能是“VariableSizedWrapGrid”。但是这不能用于通过“ItemsSource”(和ItemTemplateSelector)创建Items。

3 个答案:

答案 0 :(得分:11)

很抱歉,我不得不对您的评论提出异议,即使用VariableSizedWrapGrid无法做到这一点。它当然可以:

<GridView>
    <GridView.ItemsPanel>
        <ItemsPanelTemplate>
            <VariableSizedWrapGrid Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </GridView.ItemsPanel>
    <x:String>One</x:String>
    <x:String>Two</x:String>
    <x:String>Three</x:String>
    <x:String>Four</x:String>
</GridView>

我必须承认,VariableSizedWrapGrid不能用于通过ItemsSource创建项目。肯定能。 WrapGrid和VariableSizedWrapGrid基本相同。 WrapGrid的重量略轻,因为它不支持列和行跨越。

答案 1 :(得分:5)

添加ItemsPanelTemplate以控制项目的排列方式,例如

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapGrid Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</GridView.ItemsPanel>

答案 2 :(得分:2)

只需设置ItemsWrapGrid的方向:

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <ItemsWrapGrid Orientation="Horizontal"/>
    </ItemsPanelTemplate>
</GridView.ItemsPanel>