2010-02-18 2 views
5

보다 작습니다.글꼴은 어떤 이유로 보통 글꼴

SizeF sz = g.MeasureString(Text, new Font(Font.FontFamily, (int)(Font.Size - (Font.Size/7)), Font.Style), new PointF(0, 0), StringFormat.GenericDefault); 

    this.Size = new Size((int)sz.Width, (int)sz.Height); 
    //These are not the same 
    fontpath.AddString(this.Text, this.Font.FontFamily,(int)this.Font.Style, this.Font.Size, new Point(0, 0),StringFormat.GenericDefault); 

왜 그 일을하고 있는지 알 수 있습니까? 당신의 Font.Size의 단위를 가정

답변

19

당신이 emSize (문자를 경계 전각 사각형 상자의 높이)에 AddString에 전달 된 크기를 변환해야합니다, Point입니다. `Font.SizeInPoints`있을 때

float emSize = graphics.DpiY * font.Size/72; 
+1

이유는 소수점 유닛을 가정? 또한 "emSize로 변환"은 무엇을 의미합니까? Em 크기는 단위가 아닙니다. 'AddString'이 픽셀 단위를 예상한다고 사람들에게 말하지 않기 바랍니다. (점을 픽셀로 변환하는 수식 때문에 가정합니다)? – user764754

2
float emSize = graphics.DpiY * font.SizeInPoints/72; 
+6

코드가 질문에 어떻게 대답하는지 조금 더 자세히 설명해 주시겠습니까? – brodoll

관련 문제