Exemplo n.º 1
0
        private Size GetApplicableSize(BasePageableItem item, PagerStyle style)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var size = item.CustomSize ?? this.CustomSize;

            if (size.HasValue)
            {
                return(size.Value);
            }
            else
            {
                switch (style)
                {
                case PagerStyle.Rectangle:
                case PagerStyle.Oval:
                    return(new Size(8, 4));

                case PagerStyle.Diamond:
                    return(new Size(6, 8));

                case PagerStyle.Square:
                case PagerStyle.Circle:
                case PagerStyle.Star:
                case PagerStyle.Triangle:
                case PagerStyle.Heart:
                default:
                    return(new Size(8, 8));
                }
            }
        }
Exemplo n.º 2
0
        private void UpdateView(BasePageableItem item, bool selected, ShapeView view)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var style = item.CustomPagerStyle ?? this.PagerStyle;
            var color = selected ? item.CustomSelectedColor ?? this.CustomSelectedColor ?? Color.White : item.CustomUnselectedColor ?? this.CustomUnselectedColor ?? Color.FromRgba(1, 1, 1, 0.5);
            var size  = this.GetApplicableSize(item, style);

            view.Color         = color;
            view.HeightRequest = size.Height;
            view.WidthRequest  = size.Width;
            view.ClassId       = selected.ToString();

            switch (style)
            {
            case PagerStyle.Rectangle:
            case PagerStyle.Square:
                view.ShapeType = ShapeType.Box;
                break;

            case PagerStyle.RoundedRectangle:
            case PagerStyle.RoundedSquare:
                view.CornerRadius = (float)(size.Height + size.Width) / 10f;
                break;

            case PagerStyle.Star:
                view.ShapeType = ShapeType.Star;
                break;

            case PagerStyle.Triangle:
                view.ShapeType = ShapeType.Triangle;
                break;

            case PagerStyle.Oval:
                view.ShapeType = ShapeType.Oval;
                break;

            case PagerStyle.Diamond:
                view.ShapeType = ShapeType.Diamond;
                break;

            case PagerStyle.Heart:
                view.ShapeType = ShapeType.Heart;
                break;

            case PagerStyle.Circle:
            default:
                view.ShapeType = ShapeType.Circle;
                break;
            }
        }
Exemplo n.º 3
0
        private ShapeView GetApplicableView(BasePageableItem item, bool selected)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var result = new ShapeView
            {
                HorizontalOptions = LayoutOptions.Center,
                VerticalOptions   = LayoutOptions.Center
            };

            this.UpdateView(item, selected, result);

            return(result);
        }