private SizeF GetNeededSize()
        {
            var width = TwipsToPixels(_computedSize.Width);

            using (var box = new RichTextBoxFixed())
            {
                box.ContentsResized += ResizeBoxToContent;
                box.Width            = width;
                box.SetRtfOrText(_control.Rtf);

                return(new SizeF(PixelsToTwips(box.Size.Width), PixelsToTwips(box.Size.Height)));
            }
        }
        private string GetNextRtf(float to)
        {
            var bottom = TwipsToPixels(to);

            using (var rtb = new RichTextBoxFixed())
            {
                rtb.ContentsResized += ResizeBoxToContent;
                rtb.Width            = TwipsToPixels(_computedSize.Width);
                rtb.SetRtfOrText(_control.Rtf ?? string.Empty);

                _lastChar = rtb.GetCharIndexFromPosition(new Point(0, bottom + rtb.PreferredHeight));
                rtb.Select(_firstChar, _lastChar - _firstChar);

                _firstChar = _lastChar;

                return(rtb.SelectedRtf);
            }
        }
Esempio n. 3
0
        private string GetNextRtf(float to)
        {
            var bottom = TwipsToPixels(to);

            using (var rtb = new RichTextBoxFixed())
            {
                rtb.ContentsResized += ResizeBoxToContent;
                rtb.Width            = TwipsToPixels(_computedSize.Width);
                rtb.SetRtfOrText(_control.Rtf);

                var lastCharPoint = rtb.GetPositionFromCharIndex(rtb.TextLength - 1);
                var neededPoint   = new Point(lastCharPoint.X, Math.Min(lastCharPoint.Y, bottom + rtb.PreferredHeight));
                _lastChar = rtb.GetCharIndexFromPosition(neededPoint);
                rtb.Select(_firstChar, _lastChar - _firstChar);

                _firstChar = _lastChar;

                return(rtb.SelectedRtf);
            }
        }