Esempio n. 1
0
        public static object PickTagAt( TextRunLine line, int x, int y )
        {
            Measurement m = new Measurement();

            foreach ( var run in line )
            foreach ( var ch_ in run.Text )
            {
                char ch = ch_;
                m = Measurement.Merge(m,m.Advance.X,0,run.Font.BitmapPageForOrNul( ref ch ).Measurement );
                if ( 0 <= x && x < m.Bounds.Width && 0 <= y && y < m.Bounds.Height ) return run.Tag;
            }
            return null;
        }
Esempio n. 2
0
        public static Measurement MeasureLine( TextRunLine line )
        {
            Measurement m = new Measurement();

            foreach ( var run in line )
            foreach ( var ch_ in run.Text )
            {
                char ch = ch_;
                m = Measurement.Merge(m,m.Advance.X,0,run.Font.BitmapPageForOrNul( ref ch ).Measurement);
            }

            return m;
        }