레이블의 크기와 창 크기를 기준으로 글꼴 크기의 크기를 조정할 수있는 도움말을 찾고 있습니다.레이블 및 글꼴 크기 조정을 기반으로 창의 크기 조정
즉, 창 크기가 조정되면 레이블 자체에서 글꼴과 배경 상자를 조정하여 동일한 작업을 수행합니다.
나는 폼의 Resize 이벤트에서 뭔가를 트리거하고 있음을 알고 있지만 무엇이 있는지 모른다. 누구든지 도와 줄 수 있습니까?
레이블의 크기와 창 크기를 기준으로 글꼴 크기의 크기를 조정할 수있는 도움말을 찾고 있습니다.레이블 및 글꼴 크기 조정을 기반으로 창의 크기 조정
즉, 창 크기가 조정되면 레이블 자체에서 글꼴과 배경 상자를 조정하여 동일한 작업을 수행합니다.
나는 폼의 Resize 이벤트에서 뭔가를 트리거하고 있음을 알고 있지만 무엇이 있는지 모른다. 누구든지 도와 줄 수 있습니까?
이것은 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);
}
레이블이 기본적으로 자동 크기 조정으로 설정되어 있으며, 이는 자체 처리해야합니다 ('배경 상자'의 의미라고 가정).
따라서 양식의 새 크기에 따라 글꼴을 변경하면됩니다. 당신은 아마 형태의 면적/증가에 의해 감소 얼마나 많은 결정 론적 기반으로 축척 계수를 계산 할 것
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;
}
하지만 코드는 적어도 당신에게 효과를 얻을해야합니다 :이 그것을해야한다.