protected override void OnElementChanged(ElementChangedEventArgs <PinItemView> e) { base.OnElementChanged(e); if (e.OldElement != null) { } if (e.NewElement != null) { if (Control == null) { var sideSize = (int)Context.ToPixels(44d); _button = new RippleButton(Context, GetRippleColor()); _button.SetWidth(sideSize); _button.SetHeight(sideSize); _button.SetTextColor(GetColor()); _button.Background = GetBackgroundDrawable(); _button.Text = Element.Text; _button.Gravity = Android.Views.GravityFlags.Center; _button.OnClick += (sender, args) => { Element?.Command?.Execute(Element?.CommandParameter); }; FrameLayout frame = new FrameLayout(Context); FrameLayout.LayoutParams @params = new FrameLayout.LayoutParams(sideSize, sideSize); @params.Gravity = Android.Views.GravityFlags.Center; frame.AddView(_button, @params); SetNativeControl(frame); } } }
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (_button != null) { if (e.PropertyName == PinItemView.ColorProperty.PropertyName) { _button.SetTextColor(GetColor()); return; } else if (e.PropertyName == PinItemView.BorderColorProperty.PropertyName) { _button.Background = GetBackgroundDrawable(); return; } else if (e.PropertyName == PinItemView.RippleColorProperty.PropertyName) { _button.SetRippleColor(GetRippleColor()); return; } } base.OnElementPropertyChanged(sender, e); }