2010-07-19 9 views
1

Dans une application cadre .NET standard (non CF), je peux changer la culture de l'interface utilisateur de l'utilisateur avec:changement de culture interface utilisateur programme dans WinCE 5/.NET CF 2

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("es-AR"); 
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Threading.Thread.CurrentThread.CurrentCulture; 

mais les CF .NET 2 doesn ne supporte pas CurrentUICulture for CurrentThread.

Jusqu'à présent, je trouve here que peut-être la culture de l'interface utilisateur peut être modifiée en réglant

[HKEY_LOCAL_MACHINE\nls\overrides]\LCID 
[HKEY_CURRENT_USER\MUI]\CurLang 

mais il nécessite le redémarrage de l'appareil après le changement. Existe-t-il un autre moyen de le faire?

TIA, Pablo

Répondre

1

Oui, il y a. Au lieu de pirater le registre, utilisez la fonction API SetUserDefaultUILanguage() documentée. À partir de la section des remarques de cette API:

Le nouveau LANGID ne prendra pas effet tant que le périphérique n'aura pas été réinitialisé.

Impossible de contourner cela. Ne devrait pas être un problème, les utilisateurs ne changent pas leur langue maternelle fréquemment.

+0

Mm, à partir de Visual Studio 2008 .NET CF Aide: «Vous ne pouvez pas définir la culture actuelle sur un programme dispositif Ils sont fixés par le fabricant de l'appareil ... » et aucune aide sur SetUserDefaultUILanguage, il semble être pris en charge dans .NET CF 4.2 (J'utilise .NET CF 2) – PabloG

+1

Vous devez P/Invoke. –