2016-12-26 66 views
1

我正在尝试制作一叠卡片。按照正确的顺序添加我想要的牌,但我希望最下面的牌与牌之前重叠,并在牌上方。使ListView项目重叠wpf C#

同样的事情回到第一个,不包括显然。

想象一堆卡片。 我现在的XAML:

<ListView Width="Auto" Height="Auto" Background="{x:Null}" 
      ItemsSource="{Binding Cards}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <local:CardView DataContext="{Binding}"/> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

回答

1

你可以用负边距来做到这一点。一种方法是Margin属性添加到您的Card类型:

public Thickness Margin { get; set; } 

,并考虑将其绑定:

<ListView.ItemTemplate> 
    <DataTemplate> 
     <local:CardView DataContext="{Binding}" Margin="{Binding Margin}" /> 
    </DataTemplate> 
</ListView.ItemTemplate> 

如何填写它取决于你的需要。这里有一个简单的方法:

foreach (var model in Cards.Skip(1)) 
    model.Margin = new Thickness(0, -100, 0, 0); 
+0

谢谢你的工作。我不明白索引,它是干什么用的? – tjw

+0

@tjw,哦,那是我的错误。你不需要它。 – icebat