示例#1
0
        public TextAlignValues TextAlign(IStyledObject control, TextAlignValues defaultValue = TextAlignValues.Left)
        {
            IDictionary <Type, IStyle> styles = _getStyles(control);

            if (styles.ContainsKey(typeof(TextAlign)))
            {
                var align = (TextAlign)styles[typeof(TextAlign)];
                return(align.Align);
            }
            return(defaultValue);
        }
示例#2
0
        protected override IBound Apply(IStyleSheet stylesheet, IBound styleBound, IBound maxBound)
        {
            base.Apply(stylesheet, styleBound, maxBound);

            var style = stylesheet.Helper;

            // text-format
            _textFormat = style.TextFormat(this);
            SetText();

            // background color, background image, borders
            using (var background = stylesheet.Background(this, styleBound))
                SetBackground(background);

            // font
            stylesheet.SetFontSettings(this, _view, styleBound.Height);

            // text color
            _textColor = style.Color(this).ToColorOrTransparent();
            _view.SetTextColor(_textColor);

            //selected color
            _selectedColor = style.SelectedColor(this).ToNullableColor();

            //selected background
            _selectionBehaviour = new SelectionBehaviour(style.SelectedBackground(this).ToNullableColor(), this, stylesheet);

            // word wrap
            _singleLine = style.WhiteSpace(this) == WhiteSpaceKind.Nowrap;
            if (_singleLine)
            {
                _view.SetSingleLine();
            }

            // text align
            TextAlignValues align = style.TextAlign(this, DefaultAlignValues);

            ApplyTextAlign(align);
            if (_singleLine)
            {
                _view.Ellipsize = align == TextAlignValues.Right ? TextUtils.TruncateAt.Start : TextUtils.TruncateAt.End;
            }

            // text padding
            int pl = style.PaddingLeft(this, styleBound.Width).Round();
            int pt = style.PaddingTop(this, styleBound.Height).Round();
            int pr = style.PaddingRight(this, styleBound.Width).Round();
            int pb = style.PaddingBottom(this, styleBound.Height).Round();

            _view.SetPadding(pl, pt, pr, pb);

            return(SizeToContent(styleBound, maxBound, style));
        }
示例#3
0
        public override void FromString(string s)
        {
            s = s.Trim();

            TextAlignValues result;

            if (!Enum.TryParse(s, true, out result))
            {
                throw new Exception("Invalid text-align value: " + s);
            }

            Align = result;
        }
示例#4
0
        protected override void ApplyTextAlign(TextAlignValues textAlign)
        {
            switch (textAlign)
            {
            case TextAlignValues.Left:
                _view.Gravity = GravityFlags.Left | GravityFlags.CenterVertical;
                break;

            case TextAlignValues.Center:
                _view.Gravity = GravityFlags.Center;
                break;

            case TextAlignValues.Right:
                _view.Gravity = GravityFlags.Right | GravityFlags.CenterVertical;
                break;
            }
        }
示例#5
0
        protected virtual void ApplyTextAlign(TextAlignValues textAlign)
        {
            switch (textAlign)
            {
            case TextAlignValues.Left:
                _view.Gravity = GravityFlags.Left | GravityFlags.Top;
                break;

            case TextAlignValues.Center:
                _view.Gravity = GravityFlags.Center | GravityFlags.Top;
                break;

            case TextAlignValues.Right:
                _view.Gravity = GravityFlags.Right | GravityFlags.Top;
                break;
            }
        }
示例#6
0
        private void SetTextAlign(TextAlignValues align, bool nowrap)
        {
            switch (align)
            {
            case TextAlignValues.Left:
                _view.TextAlignment = UITextAlignment.Left;
                break;

            case TextAlignValues.Center:
                _view.TextAlignment = UITextAlignment.Center;
                break;

            case TextAlignValues.Right:
                if (nowrap)
                {
                    _view.TextContainer.LineBreakMode = UILineBreakMode.HeadTruncation;
                }
                _view.TextAlignment = UITextAlignment.Right;
                break;
            }
        }
示例#7
0
        private void SetTextAlign(TextAlignValues align, bool nowrap)
        {
            switch (align)
            {
            case TextAlignValues.Left:
                _view.HorizontalAlignment = UIControlContentHorizontalAlignment.Left;
                break;

            case TextAlignValues.Center:
                _view.HorizontalAlignment = UIControlContentHorizontalAlignment.Center;
                break;

            case TextAlignValues.Right:
                if (nowrap)
                {
                    _view.TitleLabel.LineBreakMode = UILineBreakMode.HeadTruncation;
                }

                _view.HorizontalAlignment = UIControlContentHorizontalAlignment.Right;
                break;
            }
        }
示例#8
0
 protected CustomText(BaseScreen activity)
     : base(activity)
 {
     DefaultAlignValues = TextAlignValues.Left;
 }