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);
        }
예제 #3
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;
        }