2014-10-09 5 views
-1

나는 Form1에 텍스트를 그릴이 방법을 사용하고 있습니다 :어떻게 그래픽 DrawString 텍스트 글꼴 크기를 변경할 수 있습니까?

private bool DrawText(bool draw, string texttodraw) 
     { 
      Graphics g = this.CreateGraphics(); 
      SizeF size = g.MeasureString(texttodraw, SystemFonts.DefaultFont,14); 
      g.DrawString(texttodraw, Font, Brushes.Red, pictureBox1.Location.X + (pictureBox1.Width/2) - (size.Width/2), 
                    pictureBox1.Location.Y - 30); 
      return draw; 
     } 

나는 SizeF 크기 lline에 14 폭을 설정하는 시도를하지만 dize을 변경하지 않았고 그것이했던 유일한 이동 그것에서 텍스트 약간의 텍스트.

텍스트의 글꼴 크기를 변경하고 텍스트 위치의 원근법 (사용할 올바른 단어 인 경우)을 유지하려면 어떻게해야합니까?

이렇게하면 모든 텍스트가 pictureBox1의 가운데에있는 경우 너비 14를 사용하지 않는 것처럼 보입니다. 나는 그것이 텍스트 크기를 바꿀 때 그것이 현재와 같이 중앙에 유지되도록 원한다.

텍스트가 빨간색으로 표시되며이 경우 히브리어로 표시됩니다.

Text

답변

3

더 큰 글꼴을 사용하십시오 :

using (Font bigFont = new Font(SystemFonts.DefaultFont.FontFamily, 14, FontStyle.Regular)) { 
    SizeF size = g.MeasureString(texttodraw, bigFont, 14); 
    g.DrawString(texttodraw, bigFont, Brushes.Red, pictureBox1.Location.X + (pictureBox1.Width/2) - (size.Width/2), 
                  pictureBox1.Location.Y - 30); 
} 

이 CreateGraphics 해당를 사용하지 마십시오, 그것은 창문을 중복 또는 양식을 최소화하여 삭제 얻을 것이다 일시적인 도면이다. 또한 깜박임이 발생할 것입니다. 페인트 이벤트의 그래픽 객체를 사용하고 컨트롤을 무효화하여 페인팅을 업데이트합니다.

또한 텍스트 렌더링에 TextRenderer.DrawText 및 TextRenderer.MeasureText를 사용하십시오. DrawString은 주로 용지에 인쇄 할 때 사용해야합니다.

0
 private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
    { 
     Font drawFont = new Font("Arial Black", 9); 
     e.Graphics.DrawString(nic.Text, drawFont, Brushes.Maroon, 174, 12); 
관련 문제