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

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

【问题讨论】:

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

标签: wpf xaml windows-phone microsoft-metro windows-10


【解决方案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 可以达到相同的结果,但它可能会稍微烦人,因为您可能需要调整控件的默认边距。

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 2021-04-30
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多