How to MeasureText for NCanvas?


Author
Message
Karl Hulme
Karl Hulme
Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)
Group: Forum Members
Posts: 6, Visits: 16
I found NFont.MeasureText but this requires that the font object be attached/associated with a document.

I'm rendering text to the canvas in PrePaint using arg.PaintVisitor.PaintString and need a way to calculate the required height given a specific width.
Reply
Karl Hulme
Karl Hulme
Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)Forum Guru (50 reputation)
Group: Forum Members
Posts: 6, Visits: 16
Oh dear! - There's an example of this in the Nevron Example app.

The code needs to look something like:...

            var txt = "Here is some text to measure";
            double targetWidth = 150;

            var settings = new NPaintTextRectSettings ();
            settings.SingleLine = false;
            settings.WrapMode = ENTextWrapMode.WordWrap;
            settings.HorzAlign = ENTextHorzAlign.Left;
            settings.VertAlign = ENTextVertAlign.Top;

            var resolution = canvas.Ownerdocument.GetEffectiveResolution ();
            var font = new NFont (NFontDescriptor.DefaultMonoFamilyName, 10);
            var textSize = font.MeasureString (txt.ToCharArray (), resolution, 150, false, ref settings);

            arg.PaintVisitor.SetFill (NColor.Black);
            arg.PaintVisitor.SetFont (font);
            arg.PaintVisitor.PaintString (
                new NRectangle(35, 35, textSize.Width, textSize.Height), 
                txt, ref settings);


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search