c# - 在两列 ListView 中拉伸(stretch)项目

标签 c# win-universal-app uwp-xaml

我正在尝试在 UWP(仅限 XAML)中创建一个具有拉伸(stretch)项目宽度和拉伸(stretch)项目高度的两列 ListView 。

<ListView HorizontalAlignment="Stretch">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <VariableSizedWrapGrid MaximumRowsOrColumns="2" HorizontalChildrenAlignment="Stretch" HorizontalAlignment="Stretch"  />
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListViewItem Background="Black"  />
    <ListViewItem Background="Yellow" />
    <ListViewItem Background="Blue"/>
</ListView>

不幸的是我还没有结果,我想要:

Current result

它应该是什么样子:

How it should look like

我希望有类似 ItemWidth="Stretch"的东西,然后设置与高度相同的宽度,但它不存在。

如有任何帮助,我们将不胜感激。

谢谢。

最佳答案

要创建一个两列的 ListView,我建议您查看 UniformGrid-panel ,可从 GitHub 获得拥有 MIT 许可证。

将 UniformGrid.cs 复制到您的项目后,您应该可以很好地获得所需的布局。

XAML:

    <ListView HorizontalAlignment="Stretch">
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <ug:UniformGrid Columns="2" />
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
        <ListViewItem Background="Black"  />
        <ListViewItem Background="Yellow" />
        <ListViewItem Background="Blue"/>
    </ListView>

结果:

UWP UniformGrid

关于c# - 在两列 ListView 中拉伸(stretch)项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180710/

相关文章:

c# - WinUI XAML : Using a ResourceDictionary from another project

c# - 如何使用 WCHAR* 在消息框中显示来自 C# 的 C 函数

c# - UWP 无法将目标设置为 Windows 10240

c# - 是否可以使用与标准属性相同的属性路径语法绑定(bind)到 xaml 中的索引属性?

javascript - WebView.InvokeScriptAsync 不适用于通用应用程序

c# - 在缓存中找不到类型

uwp - 使用 UWP 主从更改详细信息项目

c# - 如何在 C# 中安全地创建 mysql 数据库

c# - 无法在 C# 中初始化自动属性

c# - WCF webservice - 使用锁会导致问题吗?