2016-12-26 122 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