шнурок повернуть длинный текст 180

Я использую метод шнурка для рисования текста внутри прямоугольника.. Я хотел повернуть текст на 180 градусов, поэтому я использовал этот код

   Rectangle displayRectangleh =
       new Rectangle(new Point((int)posh.X, (int)posh.Y), new Size(rectwdh, recth));

   StringFormat format1h = new StringFormat(StringFormatFlags.DirectionVertical);
   format1h.LineAlignment = StringAlignment.Center;
   format1h.Alignment = StringAlignment.Center;
   b = new SolidBrush(Color.Black);
   e.ChartGraphics.Graphics.TranslateTransform((float)rectwdh / 2 + posh.X, recth / 2 + posh.Y);
   e.ChartGraphics.Graphics.RotateTransform(180);
   e.ChartGraphics.Graphics.TranslateTransform(-((float)rectwdh / 2 + posh.X), -(recth / 2 + posh.Y));
            Font boldFonth = new Font(FontFamily.GenericSansSerif, 16, FontStyle.Bold, GraphicsUnit.Pixel, 1, true);
   e.ChartGraphics.Graphics.DrawRectangle(new Pen(Color.Black, 2), displayRectangleh);
   e.ChartGraphics.Graphics.DrawString("This is rotated long text test ", boldFonth, b, (RectangleF)displayRectangleh, format1h);
   e.ChartGraphics.Graphics.ResetTransform();

где posh.X и posh.Y (положение перекрестия), rectwdh (ширина прямоугольника) и recth (высота прямоугольника)

Он отлично работает для короткого текста, но для длинного текста новая строка будет над моей старой строкой, см. следующий рисунок:

введите здесь описание изображения

Я даже пытался добавить новый символ строки \n, но результат тот же. мой вопрос: как повернуть текст на 180 внутри прямоугольника и получить правильное выравнивание??


person user1477332    schedule 13.07.2016    source источник


Ответы (1)


Никогда раньше даже не использовал API-интерфейсы StringFormat, я случайным образом стучал по нему, пока не нашел это:

StringFormat format1h = new StringFormat(StringFormatFlags.DirectionVertical | StringFormatFlags.DirectionRightToLeft);

person zeromus    schedule 13.07.2016