Ejemplo n.º 1
0
			public MeasuredLabelItem(Graphics g, FontX font, StringFormat strfmt, string itemtext, double lineSpacing, StringAlignment horizontalAlignment, StringAlignment verticalAlignment, StringAlignment textBlockAligment)
			{
				_text = itemtext.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
				_stringSize = new PointD2D[_text.Length];
				_font = font;
				_horizontalAlignment = horizontalAlignment;
				_verticalAlignment = verticalAlignment;
				_textBlockAligment = textBlockAligment;
				_strfmt = strfmt;
				_lineSpacing = lineSpacing;
				_size = SizeF.Empty;
				var bounds = RectangleD2D.Empty;
				var position = new PointD2D();
				for (int i = 0; i < _text.Length; ++i)
				{
					_stringSize[i] = g.MeasureString(_text[i], GdiFontManager.ToGdi(_font), new PointF(0, 0), strfmt);
					bounds.ExpandToInclude(new RectangleD2D(position, _stringSize[i]));
					position = position.WithYPlus(_stringSize[i].Y * _lineSpacing);
				}
				_size = bounds.Size;
			}