protected void LayoutChild(CoverFlowItemControl item, int index) { var halfWidth = _itemsPresenter.ActualWidth / 2; var relativeIndex = index - SelectedIndex; var position = GetRelativePosition(relativeIndex); var x = (halfWidth + (relativeIndex * SpaceBetweenItems + (SpaceBetweenSelectedItemAndItems * position))) - (item.ActualWidth / 2); var scale = position == 0 ? 1 : Scale; var zIndex = _items.Count - Math.Abs(relativeIndex); bool useAnimation; if ((x + item.ActualWidth < 0 || x > _itemsPresenter.ActualWidth) && (item.X + item.ActualWidth < 0 || item.X > _itemsPresenter.ActualWidth) && !(x + item.ActualWidth < 0 && item.X > _itemsPresenter.ActualWidth) && !(item.X + item.ActualWidth < 0 && x > _itemsPresenter.ActualWidth)) { useAnimation = false; } else { useAnimation = true; } item.SetValues(x, zIndex, RotationAngle * position, ZDistance * Math.Abs(position), scale, _animationDuration, EasingFunction, useAnimation); }
private void UnsubscribeCoverFlowItemEvents(CoverFlowItemControl coverFlowItem) { if (coverFlowItem != null) { coverFlowItem.ItemSelected -= CoverFlowItemSelected; coverFlowItem.SizeChanged -= CoverFlowItemSizeChanged; } }