0

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

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

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

我查看了代码源,它们都深入到定义源或其他内容的过于复杂的代码行为文件中。

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 列?

感谢您阅读这一切,感激不尽。

凯文

4

1 回答 1

1

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

<ItemsPanelTemplate x:Key="colorSelectionRowTemplate">
    <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="7">
    </WrapGrid>
</ItemsPanelTemplate>
于 2012-10-24T17:25:13.707 回答