Freigeben über


Internationale Schriftarten in Windows Forms und Steuerelementen

In internationalen Anwendungen ist die empfohlene Methode zum Auswählen von Schriftarten die Verwendung von Schriftartenfallback nach Möglichkeit. Das Schriftarten-Fallback bedeutet, dass das System bestimmt, zu welchem Skript das Zeichen gehört.

Verwenden des Schriftfallbacks

Um dieses Feature nutzen zu können, legen Sie die Font Eigenschaft für Ihr Formular oder ein anderes Element nicht fest. Die Anwendung verwendet automatisch die Standardschriftart des Systems, die sich von einer lokalisierten Sprache des Betriebssystems zu einer anderen unterscheidet. Wenn die Anwendung ausgeführt wird, stellt das System automatisch die richtige Schriftart für die im Betriebssystem ausgewählte Kultur bereit.

Es gibt eine Ausnahme von der Regel, die Schriftart nicht festzulegen, die zum Ändern des Schriftschnitts dient. Dies kann für eine Anwendung wichtig sein, in der der Benutzer auf eine Schaltfläche klickt, damit Text in einem Textfeld fett formatiert angezeigt wird. Dazu schreiben Sie eine Funktion, um den Schriftschnitt des Textfelds basierend auf der Schriftart des Formulars fett zu ändern. Es ist wichtig, diese Funktion an zwei Stellen aufzurufen: im Ereignishandler der Schaltfläche Click und im FontChanged Ereignishandler. Wenn die Funktion nur im Click Ereignishandler aufgerufen wird und ein anderer Codeabschnitt die Schriftfamilie des gesamten Formulars ändert, ändert sich das Textfeld nicht mit dem Rest des Formulars.

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();
   }
}

Wenn Sie Ihre Anwendung lokalisieren, wird die fett formatierte Schriftart jedoch für bestimmte Sprachen möglicherweise schlecht angezeigt. Wenn dies ein Problem ist, möchten Sie, dass die Lokalisierer die Möglichkeit haben, die Schriftart von fett in regulären Text zu wechseln. Da Lokalisierer in der Regel nicht Entwickler sind und keinen Zugriff auf Quellcode haben, muss diese Option nur für Ressourcendateien in den Ressourcendateien festgelegt werden. Dazu legen Sie die Bold Eigenschaft auf true. Dies führt dazu, dass die Schriftarteinstellung in die Ressourcendateien geschrieben wird, in denen Lokalisierer sie bearbeiten können. Anschließend schreiben Sie Code nach der InitializeComponent Methode, um die Schriftart basierend auf der Schriftart des Formulars zurückzusetzen, wobei jedoch der in der Ressourcendatei angegebene Schriftschnitt verwendet wird.

TextBox1.Font = New System.Drawing.Font(Me.Font, TextBox1.Font.Style)
textBox1.Font = new System.Drawing.Font(this.Font, textBox1.Font.Style);

Siehe auch