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);
        }
Example #4
0
        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();
         }
     }
 }
Example #6
0
        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;
        }