void CollectionViewCurrentChanged(object sender, EventArgs e) { CollectionView collectionView = (CollectionView)sender; if (collectionView != null && collectionView.CurrentPosition >= 0 && collectionView.CurrentPosition <= piePieces.Count) { PiePiece piece = piePieces[collectionView.CurrentPosition]; DoubleAnimation a = new DoubleAnimation(); a.To = 10; a.Duration = new Duration(TimeSpan.FromMilliseconds(200)); piece.BeginAnimation(PiePiece.PushOutProperty, a); } }
void PiePieceMouseUp(object sender, MouseButtonEventArgs e) { CollectionView collectionView = (CollectionView)CollectionViewSource.GetDefaultView(this.DataContext); if (collectionView == null) { return; } PiePiece piece = sender as PiePiece; if (piece == null) { return; } // select the item which this pie piece represents int index = (int)piece.Tag; collectionView.MoveCurrentToPosition(index); }