Sdílet prostřednictvím


Mezinárodní písma ve Windows Forms a ovládacích prvcích

V mezinárodních aplikacích se doporučuje použít náhradní písmo všude, kde je to možné. Záložní písmo znamená, že systém určuje, ke kterému skriptu znak patří.

Použití náhradního písma

Pokud chcete tuto funkci využít, nenastavujte vlastnost Font formuláře ani jiného prvku. Aplikace automaticky použije výchozí systémové písmo, které se liší od jednoho lokalizovaného jazyka operačního systému do jiného. Při spuštění aplikace systém automaticky poskytne správné písmo pro jazykovou verzi vybranou v operačním systému.

Existuje výjimka z pravidla nenastavovat písmo, a to pro změnu stylu písma. To může být důležité pro aplikaci, ve které uživatel klikne na tlačítko, aby se text v textovém poli zobrazoval tučně. Uděláte to tak, že napíšete funkci, která změní styl písma textového pole na tučné písmo na základě toho, co je písmo formuláře. Tuto funkci je důležité volat na dvou místech: v obslužné rutině události tlačítka Click a v obslužné rutině události FontChanged. Pokud je funkce volána pouze v obslužné rutině události Click a některá jiná část kódu změní rodinu písem celého formuláře, textové pole se nezmění se zbytkem formuláře.

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

Při lokalizaci aplikace se však písmo tučným písmem může u určitých jazyků zobrazovat špatně. Pokud se jedná o problém, chcete, aby měli lokalizátoři možnost přepnout písmo z tučného na běžné. Vzhledem k tomu, že lokalizátory obvykle nejsou vývojáři a nemají přístup ke zdrojovému kódu, musí být tato možnost nastavená v souborech prostředků. Uděláte to tak, že vlastnost Bold nastavíte na true. Výsledkem je uložení nastavení písma do souborů prostředků, kde jej lokalizátoři mohou upravovat. Poté napíšete kód po metodě InitializeComponent, který obnoví písmo podle písma formuláře, ale použijete styl písma zadaný v souboru prostředků.

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

Viz také