public override void LayoutSubviews() { base.LayoutSubviews(); MyFrameRenderer myFrameRenderer = (MyFrameRenderer)Element; CAShapeLayer cAShapeLayer = null; switch (myFrameRenderer.TypeBorder) { case TypeBorder.All: cAShapeLayer = new CAShapeLayer() { Path = UIBezierPath.FromRoundedRect(base.Bounds, UIRectCorner.BottomLeft | UIRectCorner.TopLeft | UIRectCorner.BottomRight | UIRectCorner.TopRight, new CGSize(myFrameRenderer.BorderRadius, myFrameRenderer.BorderRadius)).CGPath }; break; case TypeBorder.Right: cAShapeLayer = new CAShapeLayer() { Path = UIBezierPath.FromRoundedRect(base.Bounds, UIRectCorner.BottomRight | UIRectCorner.TopRight, new CGSize(myFrameRenderer.BorderRadius, myFrameRenderer.BorderRadius)).CGPath }; break; case TypeBorder.Up: cAShapeLayer = new CAShapeLayer() { Path = UIBezierPath.FromRoundedRect(base.Bounds, UIRectCorner.TopLeft | UIRectCorner.TopRight, new CGSize(myFrameRenderer.BorderRadius, myFrameRenderer.BorderRadius)).CGPath }; break; case TypeBorder.Left: cAShapeLayer = new CAShapeLayer() { Path = UIBezierPath.FromRoundedRect(base.Bounds, UIRectCorner.BottomLeft | UIRectCorner.TopLeft, new CGSize(myFrameRenderer.BorderRadius, myFrameRenderer.BorderRadius)).CGPath }; break; case TypeBorder.Down: cAShapeLayer = new CAShapeLayer() { Path = UIBezierPath.FromRoundedRect(base.Bounds, UIRectCorner.BottomLeft | UIRectCorner.BottomRight, new CGSize(myFrameRenderer.BorderRadius, myFrameRenderer.BorderRadius)).CGPath }; break; } if (!myFrameRenderer.IsGradient) { Layer.BackgroundColor = myFrameRenderer.StaticColor.ToCGColor(); //cAShapeLayer.BackgroundColor = myFrameRenderer.StaticColor.ToCGColor(); } base.Layer.Mask = cAShapeLayer; }
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName.Equals(MyFrameRenderer.StaticColorProperty.PropertyName)) { MyFrameRenderer myFrameRenderer = (MyFrameRenderer)Element; Layer.BackgroundColor = myFrameRenderer.StaticColor.ToCGColor(); } else if (e.PropertyName.Equals(MyFrameRenderer.HeightProperty.PropertyName)) { MyFrameRenderer myFrameRenderer = (MyFrameRenderer)Element; if (myFrameRenderer.IsGradient) { AddGradient(new CGRect(0, 0, myFrameRenderer.Width, myFrameRenderer.Height)); } } else if (e.PropertyName.Equals(MyFrameRenderer.OrientationProperty.PropertyName)) { MyFrameRenderer myFrameRenderer = (MyFrameRenderer)Element; if (myFrameRenderer.IsGradient) { AddGradient(new CGRect(0, 0, myFrameRenderer.Width, myFrameRenderer.Height)); } } }
public override void Draw(CGRect rect) { MyFrameRenderer myFrameRenderer = (MyFrameRenderer)Element; if (myFrameRenderer.IsGradient) { AddGradient(rect); } else { Layer.BackgroundColor = myFrameRenderer.StaticColor.ToCGColor(); } base.Draw(rect); }
public LoanCellRenderer() { Label LabelAccountNumber = new Label { Style = (Style)Application.Current.Resources["MyContent"], HorizontalTextAlignment = TextAlignment.Start, }; LabelAccountNumber.SetDynamicResource(Label.TextColorProperty, "StartColorGradientText"); Label LabelAccountBalance = new Label { Style = (Style)Application.Current.Resources["MyContent"], HorizontalTextAlignment = TextAlignment.End, }; LabelAccountBalance.SetDynamicResource(Label.TextColorProperty, "EndColorGradientText"); //Binding LabelAccountNumber.SetBinding(Label.TextProperty, "Number"); LabelAccountBalance.SetBinding(Label.TextProperty, "Balance"); Grid grid = new Grid(); grid.Children.Add(LabelAccountNumber, 0, 0); grid.Children.Add(LabelAccountBalance, 1, 0); MyFrameRenderer myFrameRenderer = new MyFrameRenderer { Margin = new Thickness(20, 10, 20, 10), TypeBorder = Enums.TypeBorder.All, IsGradient = false, BorderRadius = 10 }; myFrameRenderer.SetDynamicResource(MyFrameRenderer.StaticColorProperty, "ItemColor"); myFrameRenderer.Content = grid; View = myFrameRenderer; }
protected override void OnElementChanged(ElementChangedEventArgs <Frame> e) { base.OnElementChanged(e); if (e.OldElement == null) { MyFrameRenderer myFrameRenderer = (MyFrameRenderer)Element; StartColor = myFrameRenderer.StartColor; EndColor = myFrameRenderer.EndColor; if (!myFrameRenderer.IsGradient) { Layer.BackgroundColor = myFrameRenderer.StaticColor.ToCGColor(); } } if (e.NewElement != null) { MyFrameRenderer myFrameRenderer = (MyFrameRenderer)Element; if (!myFrameRenderer.IsGradient) { Layer.BackgroundColor = myFrameRenderer.StaticColor.ToCGColor(); } } }
public FavoritePageCellRenderer() { MyImageRenderer ImagePageModule = new MyImageRenderer { Source = "empresa", Foreground = Color.Transparent, HeightRequest = (double)Application.Current.Resources["MyMenuImageSize"], WidthRequest = (double)Application.Current.Resources["MyMenuImageSize"] }; Label LabelPageTitle = new Label { Style = (Style)Application.Current.Resources["MyContent"], HorizontalTextAlignment = TextAlignment.Start, }; LabelPageTitle.SetDynamicResource(Label.TextColorProperty, "StartColorGradientText"); Label LabelPageModule = new Label { Style = (Style)Application.Current.Resources["MyContent"], HorizontalTextAlignment = TextAlignment.Start, }; LabelPageModule.SetDynamicResource(Label.TextColorProperty, "EndColorGradientText"); AnimationView ImageBoxItsBeingUsed = new AnimationView { Animation = "favorite.json", Loop = false, IsPlaying = true, HeightRequest = (double)Application.Current.Resources["MyMenuImageSize"] / 1.5, WidthRequest = (double)Application.Current.Resources["MyMenuImageSize"] / 1.5 }; ImageBoxItsBeingUsed.SetDynamicResource(MyImageRenderer.ForegroundProperty, "EndColorGradientText"); //Binding LabelPageTitle.SetBinding(Label.TextProperty, "Title"); LabelPageModule.SetBinding(Label.TextProperty, "Module"); ImageBoxItsBeingUsed.SetBinding(VisualElement.IsVisibleProperty, "ItsBeingUsed"); Grid grid = new Grid { ColumnDefinitions = { new ColumnDefinition { Width = (double)Application.Current.Resources["MyMenuImageSize"] + 20 }, new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }, new ColumnDefinition { Width = (double)Application.Current.Resources["MyMenuImageSize"] }, }, ColumnSpacing = 20 }; grid.Children.Add(ImagePageModule, 0, 0); Grid.SetRowSpan(ImagePageModule, 2); grid.Children.Add(LabelPageTitle, 1, 0); grid.Children.Add(LabelPageModule, 1, 1); grid.Children.Add(ImageBoxItsBeingUsed, 2, 0); Grid.SetRowSpan(ImageBoxItsBeingUsed, 2); MyFrameRenderer myFrameRenderer = new MyFrameRenderer { Margin = new Thickness((int)Application.Current.Resources["MySideMargin"], (int)Application.Current.Resources["MyEndsMarginList"], (int)Application.Current.Resources["MySideMargin"], (int)Application.Current.Resources["MyEndsMarginList"]), TypeBorder = Enums.TypeBorder.All, IsGradient = false, BorderRadius = 20 }; myFrameRenderer.SetDynamicResource(MyFrameRenderer.StaticColorProperty, "ItemColor"); myFrameRenderer.Content = grid; View = myFrameRenderer; }