Example #1
0
        /// <summary>
        /// Convert Xamarin.Forms.TextAlignment to Mapsui/RichTextKit.Styles.Color
        /// </summary>
        /// <param name="textAlignment">TextAlignment in Xamarin.Forms format</param>
        /// <returns>TextAlignment in Mapsui/RichTextKit format</returns>
        public static Alignment ToMapsui(this Xamarin.Forms.TextAlignment textAlignment)
        {
            Alignment result;

            switch (textAlignment)
            {
            case Xamarin.Forms.TextAlignment.Start:
                result = Alignment.Left;
                break;

            case Xamarin.Forms.TextAlignment.Center:
                result = Alignment.Center;
                break;

            case Xamarin.Forms.TextAlignment.End:
                result = Alignment.Right;
                break;

            default:
                result = Alignment.Auto;
                break;
            }

            return(result);
        }
Example #2
0
        public static UIControlContentVerticalAlignment ConvertToVerticalAlignment(Xamarin.Forms.TextAlignment alignment)
        {
            switch (alignment)
            {
            default:
            case Xamarin.Forms.TextAlignment.Center: return(UIControlContentVerticalAlignment.Center);

            case Xamarin.Forms.TextAlignment.Start: return(UIControlContentVerticalAlignment.Top);

            case Xamarin.Forms.TextAlignment.End: return(UIControlContentVerticalAlignment.Bottom);
            }
        }
Example #3
0
        internal static GravityFlags ToHorizontalGravityFlags(this Xamarin.Forms.TextAlignment alignment)
        {
            switch (alignment)
            {
            case Xamarin.Forms.TextAlignment.Center:
                return(GravityFlags.CenterHorizontal);

            case Xamarin.Forms.TextAlignment.End:
                return(GravityFlags.Right);

            default:
                return(GravityFlags.Left);
            }
        }
Example #4
0
    static GravityFlags ConvertYAlignment(Xamarin.Forms.TextAlignment yAlign)
    {
        switch (yAlign)
        {
        case Xamarin.Forms.TextAlignment.Center:
            return(GravityFlags.CenterVertical);

        case Xamarin.Forms.TextAlignment.End:
            return(GravityFlags.Bottom);

        default:
            return(GravityFlags.Top);
        }
    }
Example #5
0
    static GravityFlags ConvertXAlignment(Xamarin.Forms.TextAlignment xAlign)
    {
        switch (xAlign)
        {
        case Xamarin.Forms.TextAlignment.Center:
            return(GravityFlags.CenterHorizontal);

        case Xamarin.Forms.TextAlignment.End:
            return(GravityFlags.End);

        default:
            return(GravityFlags.Start);
        }
    }
        public static GravityFlags ToHorizontalGravityFlags(this Xamarin.Forms.TextAlignment alignment)
        {
            switch (alignment)
            {
            case Xamarin.Forms.TextAlignment.Center:
                return(GravityFlags.AxisSpecified);

            case Xamarin.Forms.TextAlignment.End:
                return(GravityFlags.End);

            default:
                return(GravityFlags.Start);
            }
        }
        public static GravityFlags ToVerticalGravityFlags(this Xamarin.Forms.TextAlignment alignment)
        {
            switch (alignment)
            {
            case Xamarin.Forms.TextAlignment.Start:
                return(GravityFlags.Top);

            case Xamarin.Forms.TextAlignment.End:
                return(GravityFlags.Bottom);

            default:
                return(GravityFlags.CenterVertical);
            }
        }
Example #8
0
        public static HorizontalAlignment ToContentHorizontalAlignment(this TextAlignment alignment)
        {
            switch (alignment)
            {
            case TextAlignment.Center:
                return(HorizontalAlignment.Center);

            case TextAlignment.End:
                return(HorizontalAlignment.Right);

            case TextAlignment.Start:
                return(HorizontalAlignment.Left);
            }

            throw new InvalidOperationException(alignment.ToString());
        }
        public static TextAlignment ToNative(this Xamarin.Forms.TextAlignment formsTextAlignment)
        {
            switch (formsTextAlignment)
            {
            case Xamarin.Forms.TextAlignment.Center:
                return(TextAlignment.Center);

            case Xamarin.Forms.TextAlignment.End:
                return(TextAlignment.Right);

            case Xamarin.Forms.TextAlignment.Start:
                return(TextAlignment.Left);
            }

            return(TextAlignment.Center);
        }
        /// <summary>
        /// To the droid vertical gravity.
        /// </summary>
        /// <param name="alignment">The alignment.</param>
        /// <returns>GravityFlags.</returns>
        /// <exception cref="System.InvalidOperationException"></exception>
        public static GravityFlags ToDroidVerticalGravity(this TextAlignment alignment)
        {
            switch (alignment)
            {
            case TextAlignment.Center:
                return(GravityFlags.CenterVertical);

            case TextAlignment.End:
                return(GravityFlags.Bottom);

            case TextAlignment.Start:
                return(GravityFlags.Top);
            }

            throw new InvalidOperationException(alignment.ToString());
        }
Example #11
0
        public static VerticalAlignment ToContentVerticalAlignment(this TextAlignment alignment)
        {
            switch (alignment)
            {
            case TextAlignment.Center:
                return(VerticalAlignment.Center);

            case TextAlignment.End:
                return(VerticalAlignment.Bottom);

            case TextAlignment.Start:
                return(VerticalAlignment.Top);
            }

            throw new InvalidOperationException(alignment.ToString());
        }
        /// <summary>
        /// To the droid horizontal gravity.
        /// </summary>
        /// <param name="alignment">The alignment.</param>
        /// <returns>GravityFlags.</returns>
        /// <exception cref="System.InvalidOperationException"></exception>
        public static GravityFlags ToDroidHorizontalGravity(this TextAlignment alignment)
        {
            switch (alignment)
            {
            case TextAlignment.Center:
                return(GravityFlags.CenterHorizontal);

            case TextAlignment.End:
                return(GravityFlags.Right);

            case TextAlignment.Start:
                return(GravityFlags.Left);
            }

            throw new InvalidOperationException(alignment.ToString());
        }
        /// <summary>
        /// To the droid text alignment.
        /// </summary>
        /// <param name="alignment">The alignment.</param>
        /// <returns>DroidTextAlignment.</returns>
        /// <exception cref="System.InvalidOperationException"></exception>
        public static DroidTextAlignment ToDroidTextAlignment(this TextAlignment alignment)
        {
            switch (alignment)
            {
            case TextAlignment.Center:
                return(DroidTextAlignment.Center);

            case TextAlignment.End:
                return(DroidTextAlignment.ViewEnd);

            case TextAlignment.Start:
                return(DroidTextAlignment.ViewStart);
            }

            throw new InvalidOperationException(alignment.ToString());
        }
Example #14
0
        public static Android.Views.TextAlignment ToUITextAlignment(Xamarin.Forms.TextAlignment alignment)
        {
            switch (alignment)
            {
            case Xamarin.Forms.TextAlignment.Start:
                return(Android.Views.TextAlignment.TextStart);

            case Xamarin.Forms.TextAlignment.Center:
                return(Android.Views.TextAlignment.Center);

            case Xamarin.Forms.TextAlignment.End:
                return(Android.Views.TextAlignment.TextEnd);

            default:
                return(Android.Views.TextAlignment.TextStart);
            }
        }
        public static GravityFlags ToNative(this Xamarin.Forms.TextAlignment textAlignment)
        {
            switch (textAlignment)
            {
            case Xamarin.Forms.TextAlignment.Center:
                return(GravityFlags.Center);;

            case Xamarin.Forms.TextAlignment.Start:
                return(GravityFlags.Start);

            case Xamarin.Forms.TextAlignment.End:
                return(GravityFlags.End);

            default:
                return(GravityFlags.Start);
            }
        }
Example #16
0
        public void DrawText(string text, float x, float y, float width, float height, Xamarin.Forms.TextAlignment hAlignment, Xamarin.Forms.TextAlignment vAlignment)
        {
            if (font == null || font.NativeFont == null)
            {
                return;
            }

            var attributedString = new NSAttributedString(text, new CTStringAttributes()
            {
                Font = font.NativeFont, ForegroundColorFromContext = true
            });
            CTLine ctLine = new CTLine(attributedString);

            CGSize size = new CGSize((float)ctLine.GetTypographicBounds(), font.NativeFont.CapHeightMetric + font.NativeFont.DescentMetric);

            if ((hAlignment & Xamarin.Forms.TextAlignment.Center) != 0)
            {
                x += (width - (float)size.Width) / 2;
            }
            else if ((hAlignment & Xamarin.Forms.TextAlignment.End) != 0)
            {
                x += width - (float)size.Width;
            }

            if ((vAlignment & Xamarin.Forms.TextAlignment.Center) != 0)
            {
                y += (height - (float)size.Height) / 2;
            }
            else if ((vAlignment & Xamarin.Forms.TextAlignment.End) != 0)
            {
                y += height - (float)size.Height;
            }

            context.SaveState();
            context.ScaleCTM(1f, -1f);

            context.TextPosition = new CGPoint(x, -y - font.NativeFont.CapHeightMetric);
            ctLine.Draw(context);

            context.RestoreState();

            ctLine.Dispose();
            attributedString.Dispose();
        }
Example #17
0
        public static UIControlContentHorizontalAlignment ConvertToHorizontalAlignment(Xamarin.Forms.TextAlignment alignment)
        {
            switch (alignment)
            {
            default:
            case Xamarin.Forms.TextAlignment.Center: return(UIControlContentHorizontalAlignment.Center);

            case Xamarin.Forms.TextAlignment.Start: return(UIControlContentHorizontalAlignment.Left);

            case Xamarin.Forms.TextAlignment.End: return(UIControlContentHorizontalAlignment.Right);
            }
        }
Example #18
0
 internal static ATextAlignment ToTextAlignment(this TextAlignment alignment) => alignment switch
 {
Example #19
0
        public void DrawText(string text, float x, float y, float width, float height, Xamarin.Forms.TextAlignment hAlignment, Xamarin.Forms.TextAlignment vAlignment)
        {
            CanvasTextFormat textFormat = font != null ? ((Font)font).NativeTextFormat : defaultTextFormat;

            switch (hAlignment)
            {
            case Xamarin.Forms.TextAlignment.Start: textFormat.HorizontalAlignment = CanvasHorizontalAlignment.Left; break;

            case Xamarin.Forms.TextAlignment.Center: textFormat.HorizontalAlignment = CanvasHorizontalAlignment.Center; break;

            case Xamarin.Forms.TextAlignment.End: textFormat.HorizontalAlignment = CanvasHorizontalAlignment.Right; break;
            }

            switch (vAlignment)
            {
            case Xamarin.Forms.TextAlignment.Start: textFormat.VerticalAlignment = CanvasVerticalAlignment.Top; break;

            case Xamarin.Forms.TextAlignment.Center: textFormat.VerticalAlignment = CanvasVerticalAlignment.Center; break;

            case Xamarin.Forms.TextAlignment.End: textFormat.VerticalAlignment = CanvasVerticalAlignment.Bottom; break;
            }

            ds.DrawText(text, x, y, width, height, color, textFormat);
        }
Example #20
0
        public void DrawText(string text, float x, float y, float width, float height, Xamarin.Forms.TextAlignment hAlignment, Xamarin.Forms.TextAlignment vAlignment)
        {
            Paint.FontMetrics fm = paintFill.GetFontMetrics();

            float textWidth  = paintFill.MeasureText(text);
            float textHeight = fm.Descent - fm.Ascent;

            if ((hAlignment & Xamarin.Forms.TextAlignment.Center) != 0)
            {
                x += (width - textWidth) / 2;
            }
            else if ((hAlignment & Xamarin.Forms.TextAlignment.End) != 0)
            {
                x += width - textWidth;
            }

            if ((vAlignment & Xamarin.Forms.TextAlignment.Center) != 0)
            {
                y += (height - textHeight) / 2;
            }
            else if ((vAlignment & Xamarin.Forms.TextAlignment.End) != 0)
            {
                y += height - textHeight;
            }

            canvas.DrawText(text, x, y - fm.Ascent, paintFill);
        }