2010-09-23 5 views
0

J'ai écrit un programme WinForms en C# et à gauche la police par défaut pour tous les contrôles de formulaire (étiquettes, cases à cocher ...) (La police est Tahoma Je pense, non sûr cependant). Lorsque je compile le programme puis l'exécute sur un ordinateur en langue japonaise, toutes les polices passent à "MS UI Gothic" (une police japonaise).C#/WinForms: comment prévenir la police changeant en fonction de la langue du système d'exploitation

Y at-il de toute façon je peux forcer la police à être le même sur toutes les plateformes? À l'heure actuelle, il provoque un plantage de la mise en page beaucoup, car les personnages ont une largeur différente en fonction de la police ...

+3

Pourquoi un utilisateur japonais veut-il que les messages japonais soient affichés dans une police qui ne peut pas afficher les caractères japonais? – dtb

+0

Fixez votre mise en page afin que les différentes polices ne gâchent pas. –

+0

Même si vous corrigez les polices, ne pensez-vous pas que les _words_ auront des largeurs différentes selon la langue? –

Répondre

3

Comme cela a déjà été mentionné dans les commentaires, la vraie solution est de vous assurer que votre mise en page de formulaire peut gérer différentes polices et tailles de police. Après tout, même les utilisateurs anglais vont parfois changer la taille de la police dans leur panneau de contrôle.

Cela dit, vous pouvez forcer une police en définissant la propriété Font sur le formulaire. La plupart des contrôles (sinon tous) hériteront de la police du formulaire s'ils n'ont pas de police explicite de leur propre ensemble. Ainsi, vous pouvez définir explicitement Font dans le concepteur de formulaires, ou - si vous voulez que la police exacte soit déterminée à l'exécution - dans le constructeur après l'appel à InitializeComponent(). Mais lorsque vous faites cela, sachez que ① cela provoquera une exception si la police n'existe pas sur une autre machine; et ② vous compliquez l'internationalisation de votre logiciel à l'avenir.

+0

Un problème avec cette approche suggérée est que les contrôles qui ont une taille ou un style personnalisé n'hériteront pas la police de caractères non plus. –

1

Vous pouvez définir la police sous la forme explicitement, via la propriété de la police. Je ne suis pas sûr de ce que la réaction sera si la police n'est pas disponible sur l'ordinateur, cependant.

Questions connexes