c# - 更改 GridView 标题位置

标签 c# xaml gridview microsoft-metro windows-runtime

我有一个普通的 GridView,它显示分组数据。我的目标是将标题(一个按钮)从组的顶部移动到组的左侧。

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

    <GridView.GroupStyle>
        <GroupStyle>
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <Grid>
                        <Button Content="{Binding Title}"/>
                    </Grid>
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
            <GroupStyle.Panel>
                <ItemsPanelTemplate>
                    <VariableSizedWrapGrid ItemWidth="240" ItemHeight="160" Orientation="Vertical" Margin="0,0,80,0"/>
                </ItemsPanelTemplate>
            </GroupStyle.Panel>
        </GroupStyle>
    </GridView.GroupStyle>

    <GridView.ItemTemplate>
        <!-- item template -->
    </GridView.ItemTemplate>
</GridView>

这个问题的答案Grouping GridView in Windows 8 Metro App - 虽然不完全相同的所需布局 - 表示如果不添加额外的“虚拟图 block ”,则无法实现所需的布局。

我想知道是否有可能实现我的目标 - 将标题从组的顶部移动到组的左侧 - 没有这样一个额外的“虚拟瓷砖”。

最佳答案

您需要编辑页眉容器样式。在 Visual Studio 中,右键单击 GridView 并选择

Edit Group Style -> Edit Generated Item Container (Container Style) -> Edit a Copy

您将看到 Group Header(内容控件)和 Group Items(ItemsControl)。两者都包含在一个网格中,默认情况下,该网格是简单的两行。您可以添加一列,将组标题移动到 Grid.Column=0Grid.Row=1 中,您应该一切顺利。

关于c# - 更改 GridView 标题位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12111619/

相关文章:

c# - 比较 android(java) 和 c# 中的 md5 哈希

c# - RegisterWaitForSingleObject 未定义行为与 ManualResetEvent

silverlight - 在 XAML 中将密码框中的文本居中

silverlight - Windows Phone 中的 XAML 字符串格式

c# - 如何更新 Gridview 中的记录

c# - 使用 C# Web api 进行 Microsoft Azure 身份验证

c# - WPF 用户控件 : Invoke usercontrol's public method from viewModel

javascript - ASP.NET Gridview 如何访问字段上的复选框

java - 将外部图像加载到 GridView (无图像)

c# - 属性和依赖属性有什么区别