Normalement, toutes les ressources sont placées dans des fichiers app.xaml ou d'autres ressources xaml (en tant que dictionnaire de ressources), puis référencées dans app.xaml. Lorsque vous appliquez un motif de prisme, pour ces modules, il n'y a pas de fichier app.xaml. La classe d'application est remplacée par une interface d'implémentation de classe IModule. Alors, où est le bon endroit pour les ressources utilisées par les contrôles dans le module?Où est le bon endroit pour la ressource utilisée par les contrôles dans le module lors de l'utilisation du prisme?
Répondre
Vous pouvez ajouter le dictionnaire de ressources dans le même assembly que le module ou dans un autre assembly chargé, puis y accéder par programmation à l'aide de la méthode Application.GetResourceStream
; Cependant, vous devrez connaître le nom de l'assembly où la ressource est définie.
Par exemple, si votre assemblée est nommé TheAssembly
et le dictionnaire des ressources est nommé TheDictionary.xaml
, vous pouvez le faire (DISPOSE non représenté par souci de concision):
StreamResourceInfo sr = Application.GetResourceStream(
new Uri("/TheAssembly;component/TheDictionary.xaml", UriKind.Relative));
StreamReader r=new StreamReader(sr.Stream);
string xaml=r.ReadToEnd();
ResourceDictionary rd = (ResourceDictionary)XamlReader.Load(xaml);
De là, vous pouvez par exemple utiliser le conteneur de l'unité pour rendre le dictionnaire de ressources disponible à l'échelle de l'application.
MISE À JOUR
La version suivante évite d'avoir à coder en dur le nom de l'ensemble, à condition que la ressource est dans l'ensemble en cours d'exécution:
string assemblyName = Assembly.GetExecutingAssembly().FullName.Split(',')[0];
string uri = string.Format("/{0};component/Dictionary1.xaml", assemblyName);
StreamResourceInfo sr = Application.GetResourceStream(
new Uri(uri, UriKind.Relative));
//etc...
c'est comment je le fais: ont modules inscrire des ressources avec l'application.
- 1. où est le bon endroit pour ajouter IOperationBehavior par programme
- 2. Où est un bon endroit pour une méthode couramment utilisée ... dans les rails
- 3. Où est le bon endroit pour réinitialiser les variables dans une boucle?
- 4. Dans MVC, où est le bon endroit pour mettre le code d'autorisation?
- 5. Où est la ressource Win32 pour le curseur de la souris pour faire glisser les séparateurs?
- 6. Où est un bon endroit pour placer Catégorie dans Obj-c?
- 7. Où est le meilleur endroit pour mettre la logique d'éviction de cache dans une application AppEngine?
- 8. Est-ce que le module Ltree de PostgreSQL est un bon choix pour les commentaires threadés?
- 9. Où est le meilleur endroit pour mettre une requête DB dans drupal?
- 10. Est-ce le bon endroit pour appeler la fonction de construction RSS?
- 11. Contrôles de région de prisme disponibles
- 12. Bon endroit pour commencer l'apprentissage ASP.NET
- 13. PHP - Où est le meilleur endroit pour initier une classe de base de données?
- 14. Quelle est la meilleure ressource pour apprendre le langage d'assemblage pour les microcontrôleurs PIC
- 15. Où est le meilleur endroit pour définir une constante dans une application Ruby on Rails?
- 16. où est le meilleur endroit pour commencer à apprendre sur servlet/tomcat?
- 17. Où est un bon endroit pour les méthodes de calcul de données? Comment devrait-il être appelé?
- 18. Où est le meilleur endroit pour stocker des données relatives à l'utilisateur dans asp.net?
- 19. Un bon endroit pour communiquer avec les développeurs C++/jeux?
- 20. Serait-ce le bon endroit pour utiliser le mot-clé java "interface"?
- 21. Quel est le meilleur endroit pour les classes python dans un projet Django?
- 22. Concepteur WinForm et snapline à droite pour les contrôles dans le conteneur lors du redimensionnement
- 23. Où est un bon exemple de code pour le téléchargement de photos PHP?
- 24. Quel bon endroit pour commencer à apprendre l'assemblage?
- 25. Un bon endroit pour commencer à apprendre l'entreposage de données?
- 26. Où est le meilleur endroit pour suggérer des améliorations de la langue aux équipes de MS Language?
- 27. Où est le meilleur endroit pour télécharger des données lat/long/alt précises?
- 28. Silverlight Action et Prisme
- 29. Où le Javascript est-il stocké et exécuté par navigateur?
- 30. Méthode de recherche automatisée où une fonction est utilisée dans le code PHP
+1 Putain Anderson, je dois être rapide sur le tirage au sort de rivaliser avec vous sur ces questions Prism! –
Je connais assez bien Prism, alors j'essaie de répondre à ces questions autant que possible. Rien d'autre n'est vraiment qu'un coup de feu dans le noir :) –
@Anderson - dommage que plus d'entre nous n'utilisent pas Prism par ici ... vous seriez le jockey du prisme;) –