12
votes

Comment puis-je définir globalement la culture dans une application WPF?

Je voudrais définir la culture d'une application WPF à un spécifique sur la base des préférences de l'utilisateur.

Je peux le faire pour le fil actuel via thread.CurrentThread.current (UI) culture , mais y a-t-il un moyen de le faire globalement pour l'application (il affecte donc tous les threads par défaut) ?


0 commentaires

5 Réponses :


11
votes

Il n'y a aucun moyen de le définir pour tous les threads de l'application, cependant, si vous créez les threads de votre application, vous pouvez définir la culture pour tout le monde comme vous l'avez mentionné ci-dessus

pour définir la culture sur la principale. Application Utilisez le code d'extraction suivant: xxx


1 commentaires

Comment puis-je définir ceci dans app.xaml.cs? Définissez cette cultureInfo pour tout fil de ce projet?



6
votes

Essayez de mettre xxx

... dans votre fichier CSPROJ.


0 commentaires

4
votes

ou vous pouvez essayer ceci: xxx


2 commentaires

Vous devez le faire au démarrage de l'application avant de charger l'arborescence visuel.


Vous devez également faire system.windows.documents.textelement pour attraper tags (par exemple dans textblock éléments) qui ne font pas ' t hériter de FrameworkElement .



0
votes

ou essayer de construire une propriété attachée appropriée comme celle-ci xxx


0 commentaires

6
votes

Ok, c'est ce que j'utilise afin de vous assurer que toute mon application est dans une culture en US. xxx

afin de faire un seul fil dans une culture que vous pouvez faire xxx


4 commentaires

Vous devez également faire system.windows.documents.textelement pour attraper des balises (par exemple dans textblock éléments) qui n'hérent pas de FrameworkElement .


GRHM que voulez-vous dire?


J'ai des sections dans mon application qui ressemblent à: étiquette: afin d'obtenir le numéro formaté dans la locale correcte Je devais ajouter framewradyement.languageproperty.overridemetadata (typeof (sy stem.windows.documen tpostelement), nouveau frameworkproperTymetadata (xmllanguage.getlanguage (cultureinfo.currentculture.ietflangugeg))); ainsi que les lignes que nous avons mentionnées. La course n'hérite pas de FrameworkElement (voir msdn.microsoft.com/en-us/library/... )


Malheureusement, cultureInfo.defultthreadCurrentCulture n'est pas disponible avant .NET 4.5.