Пример #1
0
        public void TrimDisplayIfOverElementDimensions(int padding)
        {
            CalculatedStyle dimensions = GetDimensions();

            if (dimensions.Width != 0f || dimensions.Height != 0f)
            {
                Point           point       = new Point((int)dimensions.X, (int)dimensions.Y);
                Point           point2      = new Point(point.X + (int)dimensions.Width, point.Y + (int)dimensions.Height);
                Rectangle       rectangle   = new Rectangle(point.X, point.Y, point2.X - point.X, point2.Y - point.Y);
                CalculatedStyle dimensions2 = _text.GetDimensions();
                Point           point3      = new Point((int)dimensions2.X, (int)dimensions2.Y);
                Point           point4      = new Point(point3.X + (int)dimensions2.Width, point3.Y + (int)dimensions2.Height);
                Rectangle       rectangle2  = new Rectangle(point3.X, point3.Y, point4.X - point3.X, point4.Y - point3.Y);
                int             num         = 0;
                while (rectangle2.Right > rectangle.Right - padding && _text.Text.Length > 0)
                {
                    _text.SetText(_text.Text.Substring(0, _text.Text.Length - 1));
                    num++;
                    RecalculateChildren();
                    dimensions2 = _text.GetDimensions();
                    point3      = new Point((int)dimensions2.X, (int)dimensions2.Y);
                    point4      = new Point(point3.X + (int)dimensions2.Width, point3.Y + (int)dimensions2.Height);
                    rectangle2  = new Rectangle(point3.X, point3.Y, point4.X - point3.X, point4.Y - point3.Y);
                }
                if (num > 0 && _text.Text.Length > 0)
                {
                    _text.SetText(_text.Text.Substring(0, _text.Text.Length - 1) + "…");
                }
            }
        }