Bonjour,
j'aurais voulu savoir comment faire un Binding qui aille chercher une valeur dans le Fichier ressource de l'appli en XAML ??
Merci d'avance pour votre aide ;)
Version imprimable
Bonjour,
j'aurais voulu savoir comment faire un Binding qui aille chercher une valeur dans le Fichier ressource de l'appli en XAML ??
Merci d'avance pour votre aide ;)
Personnellement, je fais comme ça:
Code:
1
2<Button Content="{x:Static properties:Resources.ButtonText}"/>
Ca ne fonctionne pas chez moi ...
faut-il déclarer quelques chose au niveau de XAML pour utuliser la fichier ressource du projet ??
Euh, je suis pas la personne qui a écrit directement le code (c'est un ami à moi), mais j'ai également le code suivant dans la déclaration de la fenêtre:
Code:
1
2xmlns:properties="clr-namespace:Alambic.Properties"
En remplaçant "Alambic" par le namespace de ton projet bien sûr...
Je ne connaissais pas cette solution, c'est assez pratique... mais le problème c'est que ça ne marche pas avec des ressources image. J'ai trouvé une astuce pour résoudre ce problème, voir ce post. Ma solution a une limitation un peu gênante, mais le post de Jérem22 me donne une idée pour l'améliorer :)
Si j'arrive à faire ce que je veux, je posterai la nouvelle version
Merci beaucoup pour l'info ;)
Je suis l'ami en question qui a pondu ce code ;)
Il nous sert pour la localisation de notre application. En fait, toutes les chaînes de caractères sont externalisées dans un fichier resources, et on va chercher celle qui nous intéresse à partir de sa clef...
Et tant qu'on parle des fichier ressources, quelqu'un aurait-il une piste pour binder un combobox sur les langues disponibles dans l'application ?
La question n'est pas le binding lui même, mais plutôt de savoir où on peut avoir accès aux langues actuellement disponible pour notre application.
Jérem
Si ca intéresse quelqu'un, j'ai modifié mon truc pour utiliser en XAML une image des ressources de l'appli.
http://www.developpez.net/forums/sho...15#post2507015
Ca je l'ai déjà fait, je tâcherai de te retrouver ça...Citation:
savoir où on peut avoir accès aux langues actuellement disponible pour notre application
Il faut regarder avec le ResourceManager pour quelles cultures un ResourceSet est disponible :Citation:
savoir où on peut avoir accès aux langues actuellement disponible pour notre application
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 ResourceManager rman = new ResourceManager("WindowsApplication1.Properties.Resources", typeof(Properties.Resources).Assembly); foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.AllCultures)) { ResourceSet rset = rman.GetResourceSet(ci, true, false); // createIfNotExists = true, pour charger le ResourceSet en mémoire si ce n'est pas fait // tryParents = false, pour ne pas chercher le ResourceSet de la culture parente (par exemple chercher "fr" si "fr-FR" n'est pas trouvé) if (rset != null) { // Un ResourceSet est défini pour cette culture ! Console.WriteLine(ci.NativeName); } }
Vraiment nikel, merci beaucoup à toi Tomlev ;)
Ca m'a bien aidé aussi, merci beaucoup ! ;)
Je reviens sur ce sujet parce que je suis tombé sur une solution plus efficace pour lister les cultures disponibles (la solution que j'avais proposée étant assez lente...)
Cette méthode consiste à rechercher les assemblies satellites (.resources.dll) présents dans les sous-répertoires de l'application.
http://www.codeproject.com/KB/WPF/WP...ilableCultures
Un info pour vous.
Utiliser le truc de x:Static et metter votre classe de fichier de ressources publique.
Pour ce faire, ouvrez le .resx et choisissez le "Access Modifier" à public.