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

Смежные вопросы