Partager via


Polices internationales dans Windows Forms et contrôles

Dans les applications internationales, la méthode recommandée de sélection de polices consiste à utiliser la secours de police dans la mesure du possible. La secours de police signifie que le système détermine le script auquel appartient le caractère.

Utilisation de la secours de police

Pour tirer parti de cette fonctionnalité, ne définissez pas la Font propriété pour votre formulaire ou tout autre élément. L’application utilise automatiquement la police système par défaut, qui diffère d’une langue localisée du système d’exploitation à une autre. Lorsque l’application s’exécute, le système fournit automatiquement la police correcte pour la culture sélectionnée dans le système d’exploitation.

Il existe une exception à la règle de ne pas définir la police, qui consiste à modifier le style de police. Cela peut être important pour une application dans laquelle l’utilisateur clique sur un bouton pour faire apparaître du texte dans une zone de texte en gras. Pour ce faire, vous devez écrire une fonction pour modifier le style de police de la zone de texte en gras, en fonction de la police du formulaire. Il est important d’appeler cette fonction à deux emplacements : dans le gestionnaire d’événements du Click bouton et dans le FontChanged gestionnaire d’événements. Si la fonction est appelée uniquement dans le Click gestionnaire d’événements et que d’autres éléments de code modifient la famille de polices de l’intégralité du formulaire, la zone de texte ne change pas avec le reste du formulaire.

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

Toutefois, lorsque vous localisez votre application, la police en gras peut s’afficher mal pour certaines langues. S’il s’agit d’un problème, vous souhaitez que les localiseurs aient la possibilité de passer de la police en gras au texte normal. Étant donné que les localiseurs ne sont généralement pas des développeurs et n’ont pas accès au code source, uniquement aux fichiers de ressources, cette option doit être définie dans les fichiers de ressources. Pour ce faire, vous devez définir la Bold propriété sur true. Cela entraîne l’écriture du paramètre de police dans les fichiers de ressources, où les localiseurs peuvent le modifier. Vous écrivez ensuite du code après la InitializeComponent méthode pour réinitialiser la police en fonction de la police du formulaire, mais en utilisant le style de police spécifié dans le fichier de ressources.

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

Voir aussi