void UpdatePadding() { AButton view = View; if (view == null) return; if (_disposed || _renderer == null || _element == null) return; if (!_defaultPaddingPix.HasValue) _defaultPaddingPix = new Thickness(view.PaddingLeft, view.PaddingTop, view.PaddingRight, view.PaddingBottom); // Currently the Padding Bindable property uses a creator factory so once it is set it can't become unset // I would say this is currently a bug but it's a bug that exists already in the code base. // Having this comment and this code more accurately demonstrates behavior then // having an else clause for when the PaddingProperty isn't set if (!_element.IsSet(Button.PaddingProperty)) return; var padding = _element.Padding; var adjustment = 0.0; if (_borderAdjustsPadding && _element is IBorderElement borderElement && borderElement.IsBorderWidthSet() && borderElement.BorderWidth != borderElement.BorderWidthDefaultValue) adjustment = borderElement.BorderWidth; var defaultPadding = _preserveInitialPadding && _defaultPaddingPix.HasValue ? _defaultPaddingPix.Value : new Thickness(); view.SetPadding( (int)(Context.ToPixels(padding.Left + adjustment) + defaultPadding.Left), (int)(Context.ToPixels(padding.Top + adjustment) + defaultPadding.Top), (int)(Context.ToPixels(padding.Right + adjustment) + defaultPadding.Right), (int)(Context.ToPixels(padding.Bottom + adjustment) + defaultPadding.Bottom)); }
protected override void OnElementChanged(ElementChangedEventArgs <Button> e) { base.OnElementChanged(e); CustomButton customButton = e.NewElement as CustomButton; Android.Widget.Button thisButton = this.Control as Android.Widget.Button; thisButton.SetPadding(0, 0, 0, 0); }
private void Initialize() { _button = MXContainer.Resolve <Button>(GetType().Name, Context) ?? new Button(Context); AddView(_button, new LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent, GravityFlags.Fill)); _button.Gravity = GravityFlags.Center; _button.SetPadding(4 * Padding, 2 * Padding, 4 * Padding, 0); _button.SetSingleLine(true); _button.Ellipsize = TextUtils.TruncateAt.End; _button.TextChanged += TextChanged; ForegroundColor = iApp.Instance.Style.TextColor; }