private void cardView_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { // При нажатии левой кнопки мыши проверяем, можем ли мы переместить карты // от выбранной до нижней. Если можем - создаём из них DraggableCards и перемещаем их. var view = (CardView)sender; List <Card> draggable = Tableau.GetDraggableTopCards(); for (int i = 0; i < draggable.Count; i++) { var dragCard = draggable[i]; if (view.Card.Equals(dragCard)) { // Собираем карты в новый компонент. var draggableCards = new DraggableCards(); draggableCards.Cards = draggable.GetRange(i, draggable.Count - i); // Карты в таблице скрываем. foreach (var cardView in _cardViews) { foreach (var card in draggableCards.Cards) { if (cardView.Card.Equals(card)) { cardView.Visibility = Visibility.Hidden; } } } // Добавляем новый компонент на форму. Canvas.SetTop(draggableCards, Canvas.GetTop(view)); Canvas.SetLeft(draggableCards, Canvas.GetLeft(view)); Panel.SetZIndex(draggableCards, 200); RootView.Children.Add(draggableCards); DragHelper.Drag(draggableCards, OnDragCompleted, e.GetPosition(null)); return; } } }