二维GridView

时间:2012-10-24 16:38:13

标签: wpf xaml windows-8

所以我只是尝试创建一个GridView,我将鼠标悬停在每个项目上并突出显示它们。我也希望能够选择一个项目。

我有这个工作,每个项目都是一个矩形,但这似乎只是一行/方向。

我想要一个GRID(显然网格有行和列),但我不知道如何添加更多行。

我查看过代码源,他们都会深入研究定义源代码的过于复杂的代码behing文件。

GridView元素不仅仅具有Columns =“7”类型的属性吗?

这是我的XAML:

样式资源

<ItemsPanelTemplate x:Key="colorSelectionRowTemplate">
    <StackPanel Orientation="Horizontal">
        <StackPanel.ChildrenTransitions>
            <TransitionCollection/>
        </StackPanel.ChildrenTransitions>
    </StackPanel>
</ItemsPanelTemplate>
<Style x:Key="colorSelectionRow" TargetType="GridView">
    <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Enabled"/>
    <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Hidden"/>
    <Setter Property="GridView.ItemsPanel" Value="{StaticResource colorSelectionRowTemplate}"/>
</Style>
<Style x:Key="colorSelection" TargetType="Rectangle">
    <Setter Property="Width" Value="30"/>
    <Setter Property="Height" Value="30"/>
</Style>

<GridView Style="{StaticResource colorSelectionRow}">
    <Rectangle Style="{StaticResource colorSelection}" Fill="AliceBlue" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="AntiqueWhite" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Aqua" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Aquamarine" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Azure" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Beige" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Bisque" Tapped="OnColorSelectionTapped"/>
</GridView>
    <GridView Style="{StaticResource colorSelectionRow}">
    <Rectangle Style="{StaticResource colorSelection}" Fill="AliceBlue" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="AntiqueWhite" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Aqua" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Aquamarine" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Azure" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Beige" Tapped="OnColorSelectionTapped"/>
    <Rectangle Style="{StaticResource colorSelection}" Fill="Bisque" Tapped="OnColorSelectionTapped"/>
</GridView>

作为两行的例子......

但很明显,如果你从每一行(单独的GridView)中选择一个,有多种选择。

任何人都知道一个简单的解决方法,所以我可以在同一个GridView中有4行,每行有7列?

感谢阅读所有这些,感谢它。

凯文

1 个答案:

答案 0 :(得分:1)

我的问题的答案是项目面板模板中的WrapGrid,如果其他人遇到这个看似过于复杂的元素的话。

<ItemsPanelTemplate x:Key="colorSelectionRowTemplate">
    <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="7">
    </WrapGrid>
</ItemsPanelTemplate>