SetTextDrawingMode() 공개 메소드

public SetTextDrawingMode ( CGTextDrawingMode mode ) : void
mode CGTextDrawingMode
리턴 void
예제 #1
0
        public static float MeasureStringWidth(CGContext context, string text, string fontName, float fontSize)
        {
            if (string.IsNullOrEmpty(text))
                return 0;

            context.SaveState();
            PointF pos = context.TextPosition;
            context.SelectFont(fontName, fontSize, CGTextEncoding.MacRoman);
            context.TextMatrix = CGAffineTransform.MakeScale(1.0f, -1.0f);
            //context.TranslateCTM(0, 20);
            context.ScaleCTM(1, -1);
            context.SetTextDrawingMode(CGTextDrawingMode.Invisible);
            context.ShowTextAtPoint(pos.X, pos.Y, text);
            PointF pos2 = context.TextPosition;
            context.RestoreState();
            
            return pos2.X - pos.X;
        }
예제 #2
0
 public static void DrawText(CGContext context, string text, string fontName, float fontSize, float translateHeight, float x, float y)
 {
     context.SaveState();
     context.SelectFont(fontName, fontSize, CGTextEncoding.MacRoman);
     context.SetTextDrawingMode(CGTextDrawingMode.Fill);
     context.SetFillColor(new CGColor(1, 1));
     context.SetStrokeColor(new CGColor(1.0f, 1.0f));
     //context.AddRect(rectText);
     //context.Clip();
     context.TextMatrix = CGAffineTransform.MakeScale(1.0f, -1.0f);
     context.TranslateCTM(0, translateHeight);
     context.ScaleCTM(1, -1);
     context.ShowTextAtPoint(x, y, text);
     context.RestoreState();
 }
        public void MeasureText(CGContext c, Font f)
        {
            //			Console.WriteLine ("MEASURE {0}", f);

            c.SetTextDrawingMode (CGTextDrawingMode.Invisible);
            c.TextPosition = new PointF(0, 0);
            c.ShowText ("MM");

            var mmWidth = c.TextPosition.X;

            _height = f.Size - 5;

            Widths = new float[0x80];

            for (var i = ' '; i < 127; i++) {

                var s = "M" + ((char)i).ToString() + "M";

                c.TextPosition = new PointF(0, 0);
                c.ShowText (s);

                var sz = c.TextPosition.X - mmWidth;

                if (sz < 0.1f) {
                    Widths = null;
                    return;
                }

                Widths[i] = sz;
            }

            c.SetTextDrawingMode (CGTextDrawingMode.Fill);
        }