XAML ListView - 相互堆叠项目

Posted

技术标签:

【中文标题】XAML ListView - 相互堆叠项目【英文标题】:XAML ListView - Stack items over each other 【发布时间】:2015-12-19 19:35:27 【问题描述】:

如何让 ListView(或类似的对象)将其项目叠加相互堆叠。 就像一堆现实生活中的报纸或明信片。

【问题讨论】:

我在哪里放置这个属性?只是在 ItemsTemplate 中?如何将 Z-Index 绑定到 ListItem 索引? 也许使用ItemContainerStyle 为每个项目设置负边距,以便它们重叠。您可能还需要覆盖 ItemsPanelTemplate 以使用允许重叠子级的面板...我不确定 StackPanel 是否默认允许它。 不确定可能会有所帮助Check This 我正在用一堆卡片编写游戏。当挑选一张新卡时,我想逐渐消失。可能有很多卡片(如 50-70),因此保证金方法可能无法扩展。让他们在同一个地方互相重叠会很好。 【参考方案1】:

找到解决办法:

<ItemsControl>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.Items>
        <TextBlock Text="hallo" />
        <TextBlock Text="welt" />
    </ItemsControl.Items>
</ItemsControl>

【讨论】:

【参考方案2】:

如果您希望项目重叠,您可以简单地设置负边距。

例如,使用简单的ItemsControl

<ItemsControl x:Name="ListView" Margin="5 75 5 0">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Border BorderBrush="Black" BorderThickness="2" HorizontalAlignment="Stretch" Margin="0 -65 0 0" Background="White" CornerRadius="10" Height="80">
                <TextBlock Text="Binding"></TextBlock>
            </Border>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

还有渲染:

ListView 可以达到相同的结果,但它可能会稍微烦人,因为您可能需要调整控件的默认边距。

【讨论】:

以上是关于XAML ListView - 相互堆叠项目的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin表单ListView ItemTapped / ItemSelected在XAML上绑定命令

WPF XAML 在 ListView 中看不到复选框

选择器 ItemSource 值未绑定在 XAML ListView 中

获取 ListView 项属性

ListView 项目不显示

XAML 中的 WPF ListView 绑定 ItemsSource