대답은 그래픽 객체와 페인트 이벤트의 어딘가에 숨겨져 있다는 것을 알았습니다.이 두 키워드로 해결하면 내 문제가 해결되었습니다. 여기 내 특별한 경우에 효과가있는 해결책이 있습니다. 다음과 같이
나는 단지 내 레이블 페인트 이벤트에 글꼴 크기를 변경하고 있습니다 :
public static float NewFontSize(Graphics graphics, Size size, Font font, string str)
{
SizeF stringSize = graphics.MeasureString(str, font);
float wRatio = size.Width/stringSize.Width;
float hRatio = size.Height/stringSize.Height;
float ratio = Math.Min(hRatio, wRatio);
return font.Size * ratio;
}
가 나는 또한 을이 문서가 도움이되었다고 다음 NewFontSize 기능은 다음과 같습니다로
private void myLabel_Paint(object sender, PaintEventArgs e)
{
float fontSize = NewFontSize(e.Graphics, parentContainer.Bounds.Size, myLabel.Font, myLabel.Text);
Font f = new Font("Arial", fontSize, FontStyle.Bold);
myLabel.Font = f;
}
http://www.switchonthecode.com/tutorials/csharp-tutorial-font-scaling
매우 잘 작동합니다! 감사. – nozzleman
parentContainer 란 무엇입니까 ??? 전체 코드로 URL을 보낼 수 있습니까? 감사! – Xarialon