Internationella teckensnitt i Windows-formulär och -kontroller
I internationella program är den rekommenderade metoden för att välja teckensnitt att använda teckensnittsåterställning där det är möjligt. Fontfaller innebär att systemet avgör vilket skriftsystem tecknet tillhör.
Använda teckensnittsåterställning
Om du vill dra nytta av den här funktionen ska du inte ange egenskapen Font för formuläret eller något annat element. Programmet använder automatiskt standardtypsnittet för systemet, som skiljer sig från ett lokaliserat språk i operativsystemet till ett annat. När programmet körs tillhandahåller systemet automatiskt rätt teckensnitt för den kultur som valts i operativsystemet.
Det finns ett undantag från regeln om att inte ange teckensnittet, vilket är till för att ändra teckensnittsstilen. Detta kan vara viktigt för ett program där användaren klickar på en knapp för att göra text i en textruta visas i fetstil. För att göra det skulle du skriva en funktion för att ändra textrutans teckensnittsstil till fetstil, baserat på vad formulärets teckensnitt är. Det är viktigt att anropa den här funktionen på två platser: i knappens Click händelsehanterare och i FontChanged händelsehanteraren. Om funktionen bara anropas i händelsehanteraren Click och någon annan kod ändrar teckensnittsfamiljen för hela formuläret ändras inte textrutan med resten av formuläret.
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();
}
}
Men när du lokaliserar programmet kan det fetstilt teckensnittet visas dåligt för vissa språk. Om detta är ett problem vill du att språkvarianterna ska ha möjlighet att växla teckensnittet från fetstil till vanlig text. Eftersom localizers vanligtvis inte är utvecklare och inte har åtkomst till källkod, endast till resursfiler, måste det här alternativet anges i resursfilerna. Om du vill göra detta anger du egenskapen Bold till true
. Detta resulterar i att teckensnittsinställningen skrivs ut till resursfilerna, där språkvarianter kan redigera den. Sedan skriver du kod efter InitializeComponent
-metoden för att återställa teckensnittet baserat på formulärets teckensnitt, men med det teckensnittsformat som anges i resursfilen.
TextBox1.Font = New System.Drawing.Font(Me.Font, TextBox1.Font.Style)
textBox1.Font = new System.Drawing.Font(this.Font, textBox1.Font.Style);
Se även
.NET Desktop feedback