Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Вертикальное выравнивание текста C#


Автор: I4004 16.10.2006, 23:17
Вот цитата из MSDN :
 
Код

public void DrawVerticalString()
{
    System.Drawing.Graphics formGraphics = this.CreateGraphics();
    string drawString = "Sample Text";
    System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 16);
    System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);
    float x = 150.0F;
    float y = 50.0F;
    System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat();
    drawFormat.FormatFlags = StringFormatFlags.DirectionVertical;
    formGraphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
    drawFont.Dispose();
    drawBrush.Dispose();
    formGraphics.Dispose();
}
 
Этот метод действительно выводит вертикальный текст, но проблема в том, что за низ текста принимается левый край бокса, а мне надо что бы принимался правый. Подскажите пожалуйста как так сделать.


Автор: Djuffin 16.10.2006, 23:34
В чем проблема?
x и y -позваляют распологать текст как взумается.

Может это вам поможет.
Код

x += formGraphics.MeasureString(drawString, drawFont).Height; 

Автор: I4004 16.10.2006, 23:42
Проблема не в пространственном расположении текста , а в его ориентации. Выводимый текст, своим низом обращен ВЛЕВО, а мне надо что бы он был обращен ВПРАВО.

Автор: Djuffin 17.10.2006, 00:52
Код

            System.Drawing.Graphics formGraphics = this.CreateGraphics();
            string drawString = "Sample Text";
            System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 16);
            System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black);
            float x = 50.0F;
            float y = 150.0F;
            System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat();
            formGraphics.TranslateTransform(x, y);
            formGraphics.RotateTransform(270);
            formGraphics.DrawString(drawString, drawFont, drawBrush, 0, 0, drawFormat);
            drawFont.Dispose();
            drawBrush.Dispose();
            formGraphics.Dispose();


Это называется "снизу в верх". smile

Автор: I4004 17.10.2006, 15:31
Спасибо, тема закрыта =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)