Windows Forms와 컨트롤의 국가별 글꼴
국가별 애플리케이션에서 글꼴을 선택하는 권장된 방법은 가능한 한 글꼴 대체를 사용하는 것입니다. 글꼴 대체는 시스템에서 문자가 속하는 스크립트를 결정한다는 것을 의미합니다.
글꼴 대체 사용
이 기능을 활용하려면 양식 또는 기타 요소에 대해 Font 속성을 설정하지 마세요. 애플리케이션은 자동으로 기본 시스템 글꼴을 사용하는데, 이것은 운영 체제의 지역화된 언어마다 다릅니다. 애플리케이션이 실행되면 시스템에서 운영 체제에서 선택한 문화에 대한 올바른 글꼴을 자동으로 제공합니다.
글꼴을 설정하지 않는 규칙에는 예외가 있는데, 글꼴 스타일을 변경하는 경우입니다. 이것은 사용자가 단추를 클릭하여 텍스트 상자의 텍스트를 굵게 표시하는 애플리케이션에 중요할 수 있습니다. 이렇게 하려면 양식의 글꼴에 따라 텍스트 상자의 글꼴 스타일을 굵게 변경하는 함수를 작성합니다. 단추의 Click 이벤트 처리기와 FontChanged 이벤트 처리기에서 이 함수를 호출하는 것이 중요합니다. 함수가 Click 이벤트 처리기에서만 호출되고 일부 다른 코드 조각이 전체 양식의 글꼴 패밀리를 변경하는 경우, 양식의 나머지에서 텍스트 상자는 변경되지 않습니다.
Private Sub MakeBold()
' Change the TextBox to a bold version of the form font
TextBox1.Font = New Font(Me.Font, FontStyle.Bold)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Clicking this button makes the TextBox bold
MakeBold()
End Sub
Private Sub Form1_FontChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FontChanged
' If the TextBox is already bold and the form's font changes,
' change the TextBox to a bold version of the new form font
If (TextBox1.Font.Style = FontStyle.Bold) Then
MakeBold()
End If
End Sub
private void button1_Click(object sender, System.EventArgs e)
{
// Clicking this button makes the TextBox bold
MakeBold();
}
private void MakeBold()
{
// Change the TextBox to a bold version of the form's font
textBox1.Font = new Font(this.Font, FontStyle.Bold);
}
private void Form1_FontChanged(object sender, System.EventArgs e)
{
// If the TextBox is already bold and the form's font changes,
// change the TextBox to a bold version of the new form font
if (textBox1.Font.Style == FontStyle.Bold)
{
MakeBold();
}
}
그러나 애플리케이션을 지역화할 때 굵은 글꼴이 특정 언어에 대해서는 제대로 표시되지 않을 수 있습니다. 이러한 문제가 있을 경우, 로컬라이저가 글꼴을 굵게에서 일반 텍스트로 전환할 수 있기를 원합니다. 로컬라이저는 일반적으로 개발자가 아니고 소스 코드에 액세스할 수 없고 리소스 파일에만 액세스할 수 있으므로, 이 옵션은 리소스 파일에서 설정해야 합니다. 이렇게 하기 위해 Bold 속성을 true
로 설정했습니다. 그러면 글꼴 설정이 리소스 파일에 작성되고, 여기서 로컬라이저가 글꼴 설정을 편집할 수 있습니다. 그런 다음 InitializeComponent
메서드 뒤에 코드를 작성하여 리소스 파일에 지정된 글꼴 스타일을 사용하되, 양식의 글꼴에 따라 글꼴을 재설정합니다.
TextBox1.Font = New System.Drawing.Font(Me.Font, TextBox1.Font.Style)
textBox1.Font = new System.Drawing.Font(this.Font, textBox1.Font.Style);
참고 항목
.NET Desktop feedback