private CarruselItemTemplate CreatePlaceHolder()
        {
            CarruselItemTemplate item = new CarruselItemTemplate();

            item.Background = new SolidColorBrush(Colors.Yellow);
            item.Width      = _itemWidth;
            item.Height     = _itemHeight;

            item.GetVisual().CenterPoint = new Vector3((float)_itemWidth * .5f, (float)_itemHeight * .5f, 0f);
            item.BackgroundPanel.CenterPoint = new Vector3((float)_itemWidth * .5f, (float)_itemHeight * .5f, 0f);

            return(item);
        }
        private void InitializeLayout()
        {
            if (items.Count < 3)
            {
                throw new ArgumentException("Not enought items");
            }

            center = CreatePlaceHolder();
            center.Shadow.Opacity = 0;
            center.DataContext    = items[_indexSelectedInItemsCollection];
            pnlRoot.Children.Add(center);
            itemsRendered.AddRight(center);

            var rightIdx = _indexSelectedInItemsCollection;
            var leftIdx  = _indexSelectedInItemsCollection;

            //render two items on the right and two items on the left
            for (int i = 1; i <= 2; i++)
            {
                rightIdx             = GetRight(rightIdx);
                right                = CreatePlaceHolder();
                right.DataContext    = items[rightIdx];
                right.Shadow.Opacity = 0;
                pnlRoot.Children.Add(right);
                right.GetVisual().Offset = new System.Numerics.Vector3((float)right.Width * i, 0, 0);
                itemsRendered.AddRight(right);


                leftIdx             = GetLeft(leftIdx);
                left                = CreatePlaceHolder();
                left.DataContext    = items[leftIdx];
                left.Shadow.Opacity = 0;
                pnlRoot.Children.Add(left);
                left.GetVisual().Offset = new System.Numerics.Vector3(-(float)right.Width * i, 0, 0);
                itemsRendered.AddLeft(left);
            }

            ConfigureMinMax();
        }