2012-03-01 2 views
0

레이블의 크기와 창 크기를 기준으로 글꼴 크기의 크기를 조정할 수있는 도움말을 찾고 있습니다.레이블 및 글꼴 크기 조정을 기반으로 창의 크기 조정

즉, 창 크기가 조정되면 레이블 자체에서 글꼴과 배경 상자를 조정하여 동일한 작업을 수행합니다.

나는 폼의 Resize 이벤트에서 뭔가를 트리거하고 있음을 알고 있지만 무엇이 있는지 모른다. 누구든지 도와 줄 수 있습니까?

답변

1

이것은 C#이지만 사용자에게 도움이 될 수 있습니다.

public Form1() 
{ 
    InitializeComponent(); 
    this.Resize += new EventHandler(Form1_Resize); 
    label1.AutoSize = false; 
    label1.Size = new Size(100, 50); 
    label1.BackColor = Color.White; 
} 

void Form1_Resize(object sender, EventArgs e) 
{ 
    label1.Size = new Size(this.ClientSize.Width/3, this.ClientSize.Height/3); 
    label1.Font = new Font("Arial", this.ClientSize.Height/20); 
} 
2

레이블이 기본적으로 자동 크기 조정으로 설정되어 있으며, 이는 자체 처리해야합니다 ('배경 상자'의 의미라고 가정).

따라서 양식의 새 크기에 따라 글꼴을 변경하면됩니다. 당신은 아마 형태의 면적/증가에 ​​의해 감소 ​​얼마나 많은 결정 론적 기반으로 축척 계수를 계산 할 것

private int _lastFormSize; 
     private void Form1_Resize(object sender, EventArgs e) 
     { 
      var bigger = GetArea(this.Size) > _lastFormSize; 
      float scaleFactor = bigger ? 1.1f : 0.9f; 
      label1.Font = new Font(label1.Font.FontFamily.Name, label1.Font.Size*scaleFactor); 

      _lastFormSize = GetArea(this.Size); 
     } 

     private int GetArea(Size size) 
     { 
      return size.Height*size.Width; 
     } 

하지만 코드는 적어도 당신에게 효과를 얻을해야합니다 :이 그것을해야한다.

관련 문제