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
.NET Desktop feedback
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für