Freigeben über


Internationale Schriftarten in Windows Forms und Steuerelementen

In internationalen Anwendungen wird empfohlen, bei der Auswahl von Schriftarten nach Möglichkeit ein Schriftartfallback zu nutzen. Schriftartfallback bedeutet, dass das System bestimmt, zu welchem Skript das Zeichen gehört.

Verwenden des Schriftartfallbacks

Um dieses Feature zu nutzen, legen Sie für Ihr Formular oder ein anderes Element nicht die Eigenschaft Font fest. Die Anwendung verwendet automatisch die Standardsystemschriftart, die sich in den verschiedenen Sprachversionen des Betriebssystems 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, nämlich die Änderung des Schriftschnitts. Dies könnte für eine Anwendung wichtig sein, bei der der Benutzer auf eine Schaltfläche klickt, um den Text in einem Textfeld fett formatiert darzustellen. Dazu würden Sie eine Funktion schreiben, die den Schriftschnitt des Textfelds basierend auf der Schriftart des Formulars in Fettdruck ändert. Es ist wichtig, diese Funktion an zwei Stellen aufzurufen: im Click-Ereignishandler der Schaltfläche und im FontChanged-Ereignishandler. Wenn die Funktion nur im Click-Ereignishandler aufgerufen wird und an anderer Stelle im Code die Schriftfamilie des gesamten Formulars geändert wird, dann wird das Textfeld nicht gemeinsam mit dem Rest des Formulars geändert.

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 allerdings lokalisieren, kann es sein, dass der Fettdruck in bestimmten Sprachen nicht richtig dargestellt wird. Wenn dies ein Problem ist, sollten Sie sicherstellen, dass bei der Lokalisierung die Möglichkeit besteht, den Schriftschnitt von fett in normal zu ändern. Da Übersetzer in der Regel keine Entwickler sind und nicht auf den Quellcode, sondern nur auf die Ressourcendateien zugreifen können, muss diese Option in den Ressourcendateien festgelegt werden. Legen Sie dazu die Eigenschaft Bold auf true fest. Dies führt dazu, dass die Schriftarteinstellung in die Ressourcendateien geschrieben wird, wo die Übersetzer sie bearbeiten können. Anschließend schreiben Sie Code nach der InitializeComponent-Methode, um die Schriftart basierend auf der Schriftart des Formulars zurückzusetzen, aber unter Verwendung des in der Ressourcendatei angegebenen Schriftschnitts.

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

Weitere Informationen