public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            GradientColorStack stack      = Element as GradientColorStack;
            CGColor            startColor = stack?.StartColor.ToCGColor();
            CGColor            endColor   = stack?.EndColor.ToCGColor();

            var gradientLayer = new CAGradientLayer();

            #region gradient direction
            var startPoint = new PointF
            {
                X = 0,
                Y = 1
            };
            var endPoint = new PointF
            {
                X = 1,
                Y = 0
            };
            #endregion
            gradientLayer.StartPoint = startPoint;
            gradientLayer.EndPoint   = endPoint;
            gradientLayer.Frame      = rect;
            gradientLayer.Colors     = new[] { startColor, endColor };

            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
Ejemplo n.º 2
0
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            GradientColorStack stack      = (GradientColorStack)this.Element;
            CGColor            startColor = stack.StartColor.ToCGColor();

            CGColor endColor = stack.EndColor.ToCGColor();

            #region for Vertical Gradient

            var gradientLayer = new CAGradientLayer();

            #endregion

            #region for Horizontal Gradient

            //var gradientLayer = new CAGradientLayer()
            //{
            //  StartPoint = new CGPoint(0, 0.5),
            //  EndPoint = new CGPoint(1, 0.5)
            //};

            #endregion



            gradientLayer.Frame  = rect;
            gradientLayer.Colors = new CGColor[] { startColor, endColor };

            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
 protected override void OnElementChanged(ElementChangedEventArgs <StackLayout> e)
 {
     base.OnElementChanged(e);
     if (e.OldElement != null || Element == null)
     {
         return;
     }
     try
     {
         GradientColorStack stack = e.NewElement as GradientColorStack;
         this.StartColor = stack.StartColor;
         this.EndColor   = stack.EndColor;
     }
     catch (Exception ex)
     {
         System.Diagnostics.Debug.WriteLine(@"ERROR:", ex.Message);
     }
 }
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            GradientColorStack stack = (GradientColorStack)this.Element;

            CGColor startColor = ToCGColor(stack.StartColor);
            CGColor endColor   = ToCGColor(stack.EndColor);

            var gradientLayer = new CAGradientLayer()
            {
                StartPoint = new CGPoint(0, 0.5),
                EndPoint   = new CGPoint(1, 0.5)
            };

            gradientLayer.Frame  = rect;
            gradientLayer.Colors = new CGColor[] { startColor, endColor };
            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
Ejemplo n.º 5
0
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            GradientColorStack stack      = (GradientColorStack)this.Element;
            CGColor            startColor = stack.StartColor.ToCGColor();

            CGColor endColor = stack.EndColor.ToCGColor();

            var gradientLayer = new CAGradientLayer();

            if (stack.GradientOrientation == GradientOrientation.Horizontal)
            {
                gradientLayer = new CAGradientLayer
                {
                    StartPoint = new CGPoint(0, 0.5),
                    EndPoint   = new CGPoint(1, 0.5),
                    Frame      = rect,
                    Colors     = new[] { startColor, endColor }
                };
            }
            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }
Ejemplo n.º 6
0
    public HeaderCell()
    {
        this.Height = 35;
        var title = new Label
        {
            Font            = Font.SystemFontOfSize(14, FontAttributes.Bold),
            TextColor       = Color.White,
            VerticalOptions = LayoutOptions.Center
        };

        title.SetBinding(Label.TextProperty, "Key");

        View = new GradientColorStack
        {
            StartColor        = Color.FromHex("#00008b"),
            EndColor          = Color.FromHex("#ffffff"),
            HorizontalOptions = LayoutOptions.FillAndExpand,
            HeightRequest     = 25,
            //  BackgroundColor = Color.FromHex("#008060"),
            Padding     = 5,
            Orientation = StackOrientation.Horizontal,
            Children    = { title }
        };
    }
Ejemplo n.º 7
0
        public override void Draw(CGRect rect)
        {
            base.Draw(rect);
            GradientColorStack layout = (GradientColorStack)Element;

            CGColor[] colors = new CGColor[layout.Colors.Length];

            for (int i = 0, l = colors.Length; i < l; i++)
            {
                colors[i] = layout.Colors[i].ToCGColor();
            }

            var gradientLayer = new CAGradientLayer();

            switch (layout.Mode)
            {
            default:
            case GradientColorStackMode.ToRight:
                gradientLayer.StartPoint = new CGPoint(0, 0.5);
                gradientLayer.EndPoint   = new CGPoint(1, 0.5);
                break;

            case GradientColorStackMode.ToLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0.5);
                gradientLayer.EndPoint   = new CGPoint(0, 0.5);
                break;

            case GradientColorStackMode.ToTop:
                gradientLayer.StartPoint = new CGPoint(0.5, 0);
                gradientLayer.EndPoint   = new CGPoint(0.5, 1);
                break;

            case GradientColorStackMode.ToBottom:
                gradientLayer.StartPoint = new CGPoint(0.5, 1);
                gradientLayer.EndPoint   = new CGPoint(0.5, 0);
                break;

            case GradientColorStackMode.ToTopLeft:
                gradientLayer.StartPoint = new CGPoint(1, 0);
                gradientLayer.EndPoint   = new CGPoint(0, 1);
                break;

            case GradientColorStackMode.ToTopRight:
                gradientLayer.StartPoint = new CGPoint(0, 1);
                gradientLayer.EndPoint   = new CGPoint(1, 0);
                break;

            case GradientColorStackMode.ToBottomLeft:
                gradientLayer.StartPoint = new CGPoint(1, 1);
                gradientLayer.EndPoint   = new CGPoint(0, 0);
                break;

            case GradientColorStackMode.ToBottomRight:
                gradientLayer.StartPoint = new CGPoint(0, 0);
                gradientLayer.EndPoint   = new CGPoint(1, 1);
                break;
            }

            gradientLayer.Frame  = rect;
            gradientLayer.Colors = colors;

            NativeView.Layer.InsertSublayer(gradientLayer, 0);
        }