示例#1
0
        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);
        }
示例#2
0
 private void UnsubscribeCoverFlowItemEvents(CoverFlowItemControl coverFlowItem)
 {
     if (coverFlowItem != null)
     {
         coverFlowItem.ItemSelected -= CoverFlowItemSelected;
         coverFlowItem.SizeChanged  -= CoverFlowItemSizeChanged;
     }
 }