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); }
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); }
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); }
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 } }; }
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); }