2010-10-08 11 views
2

Dans mon application de bureau WPF 4.0 pour localiser mon application (par exemple, anglais & français localisations) J'utilise le fichier Resources.resx, où je tape le nom de la boîte de dialogue (ID) et sa valeur pour la localisation en anglais et en français. Tout fonctionne très bien, sauf une chose - IntelliSense de Visual Studio 2010.IntelliSense ne fonctionne pas pour le fichier Resources.resx dans le projet WPF/C#, VS2010

Disons que j'ai un bouton:

<Button x:Name="Toolbar_Search_Button" 
     Content="{x:Static res:Resources.Toolbar_Search_Button}" /> 

Là où je veux mettre son contenu (étiquette sur le bouton) en anglais et en Français aussi, pour ce faire, j'ai ajouté à la chaîne Resources.resx et Resources.fr.resx avec l'identifiant «Toolbar_Search_Button» et donné une valeur pour chacun d'entre eux (Search/Recherche) et maintenant je dois assigner l'identifiant de chaîne à propriété du contenu du bouton. Dans mon cas, je dois écrire toute cette longue chaîne: «x: Statique res: Resources.Toolbar_Search_Button» et IntelliSense ne m'aide pas du tout. La seule chose que cela me suggère est «Member =», mais je veux que quand je tape «res: Resources» cela me donne toutes les ID de chaînes existantes, comme on peut généralement le voir quand IntelliSense est activé.

j'ai vérifié préférences VS2010, IntelliSense est activé pour tous les types de projets/langues et il fonctionne quand j'écris d'autres XAML/C# code, comme quand je tape «Wi» il me suggère «Largeur» etc.

Ma question est: Comment activer IntelliSense pour la localisation/Ressources? Que je pourrais taper «res: Ressources» et voir toutes les chaînes de ressources de localisation que j'ai.

Merci beaucoup.

Répondre

1

J'ai exactement le même problème. Je ne crois pas que Microsoft soit assez stupide pour désactiver ce peu d'intellisense via une option/paramètre non défini pour une installation Visual Studio 2010 par défaut. Mais je crois que Microsoft est assez stupide pour ne pas implémenter la fonctionnalité dans VS 2010. Je pourrais leur avoir pardonné VS 2008, puisque c'était la première implémentation correcte du support de conception XAML (VS 2005 plugin est autre chose). Le manque d'implémentation pourrait peut-être avoir quelque chose à voir avec le fait que si vous écrivez une chaîne dans votre fichier resx et que vous spécifiez ensuite la valeur clé dans XAML, XAML commencera à se plaindre que la nouvelle clé n'existe pas dans votre fichier resx. Une fois que vous aurez construit votre application, XAML commencera à accepter la nouvelle clé.

Rappelez-vous, XAML a un support intellisense horrible pour commencer. Prenez par exemple le nouveau et amélioré intellisense dans le code derrière - si vous tapez ".Cust", IntelliSense offrira à la fois "Customer" et "ExistingCustomer". Mais la même fonctionnalité n'est pas implémentée dans XAML intellisense. Il existe d'autres exemples ...

Donc, pour répondre à votre question - vous ne pouvez pas activer le support resx intellisense en XAML, au moins, je ne suis pas au courant d'une telle possibilité.