Pergunta

Eu estou usando c # 2005 eu quero corda escrita na diagonal na imagem. Mas por padrão c # oferece a opção de escrever horizontal ou na vertical.

Como nós escrevemos na diagonal?

Graças

Foi útil?

Solução

Do uma Graphics.rotateTransform antes a chamada drawString. Não se esqueça de inverter a alteração depois, como Phil Wright ressalta.

Outras dicas

Você pode usar o RotateTransform e TranslateTransform que estão disponíveis na classe Graphics. Porque usando DrawString é GDI + as transformações afeta o desenho. Portanto, use algo como isto ...

g.RotateTransform(45f);
g.DrawString("My String"...);
g.RotateTransform(-45f);

Não se esqueça de inverter a alteração embora!

Você pode usar esta função.

   void DrawDigonalString(Graphics G, string S, Font F, Brush B, PointF P, int Angle)
   {
       SizeF MySize = G.MeasureString(S, F);
       G.TranslateTransform(P.X + MySize.Width / 2, P.Y + MySize.Height / 2);
       G.RotateTransform(Angle);
       G.DrawString(S, F, B, new PointF(-MySize.Width / 2, -MySize.Height / 2));
       G.RotateTransform(-Angle);
       G.TranslateTransform(-P.X - MySize.Width / 2, -P.Y- MySize.Height / 2);
   }

Como este

enter descrição da imagem aqui

u ter right..It pode ser feito nesse texto way..BUT será escrito de cima para baixo sempre e eu não tenho certeza u pode mudá-lo de baixo para cima .. aplausos

Há uma outra maneira de desenhar um texto verticalmente que é construído no C #. Não há necessidade de transformação de gráficos explícito. Você pode usar a classe StringFormat. Aqui está um código de exemplo que desenha um texto verticalmente:

StringFormat sf = new StringFormat (); sf.FormatFlags = StringFormatFlags.DirectionVertical; e.Graphics.DrawString ( "My String", this.Font, Brushes.Black, PointF.Empty, sf);

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top