À l'aide de MergedDictionaries dans le générique.xaml dans Silverlight 3
Dans WPF, il a été possible d'organiser le code XAML pour plusieurs contrôles utilisateur en gardant le balisage de séparer les fichiers XAML dans le dossier thèmes, puis à l'aide de MergedDictionaries pour les importer dans le générique.xaml:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyFirstControl.xaml" />
<ResourceDictionary Source="MySecondControl.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Avec la disponibilité de la bêta de Silverlight 3 introduction fusionné un dictionnaire, il semblait qu'il pourrait être possible de faire la même chose avec Silverlight commandes de l'utilisateur. Mais en dépit d'essayer toutes les combinaisons de construire une action sur la fusion de fichiers de dictionnaire et de la syntaxe de la source de référence dans le générique.xaml, je n'arrive pas à le faire fonctionner.
Quelqu'un d'autre a essayé? Personne ne sait si c'est possible et si oui ce que je fais de mal?
OK - donc après de nombreux projets de test, l'obtention d'échantillons de WPF et de déplacer le XAML et C# code à Silverlight 3 et il est toujours à la peine, j'ai fait une désinstallation complète et réinstallation de TOUS les Silverlight 2 bits ET TOUS les Silverlight 3 beta bits et a finalement obtenu les choses de travail.
Je ne peux que supposer que j'ai un peu retrouvé avec une mauvaise installation de la bêta - je ne sais pas, mais il semblait que j'étais toujours en cours d'exécution dans le Silverlight 2 runtime malgré apparemment avoir la version 3 runtime est installé.
Grâce Jared de prendre un regard sur les choses et de vérification avec le SL3 équipe...et merci à Amy Dullard et Shawn Wildermuth pour produire les instructions et les fichiers de commandes pour l'exécution de Silverlight 2 & 3 sur la même machine.
OriginalL'auteur Gordon Mackie JoanMiro | 2009-03-27
Vous devez vous connecter pour publier un commentaire.
J'ai juste essayé la suite dans un contrôle utilisateur et il a travaillé:
Mais vous mentionnent spécifiquement les génériques.xaml. Ce genre de problème rencontrez-vous?
-- EDIT
Fondé sur les autres commentaires, j'ai parlé avec le SL3 de l'équipe et a obtenu la réponse suivante:
Fonctionne pour moi, l'utilisation de générique.xaml compilé comme une Ressource, et à l'aide de la totalité des ressources de la syntaxe. Il y a un bug sur de ne pas être en mesure d'utiliser des URIs relatives de la Source dans le générique.xaml (31783), mais la non-forme relative devrait fonctionner très bien
dans le générique.xaml, et de modifier la construire des actions pour les génériques.xaml et CustomControl.xaml Ressources. Laissez-moi savoir si il y a encore de la difficulté—si vous obtenez une repro, je peux prendre un coup d'oeil.
T-il m'aider?
Oui, les nouvelles de SL3.
Oui - je n'ai pas de problème à l'aide fusionné ressources d'une manière générale, mais essayer d'utiliser des fichiers xaml pour les styles et les modèles des différents contrôles utilisateur et de les rapprocher fusionné les dictionnaires dans un générique.fichier xaml est ce qui me donne des problèmes.
Eh bien, c'est exactement ce que je fais. Mais il n'est tout simplement pas de travail pour moi. Le code est une migration d'un SL 2 du projet avec les contrôles existants dans le générique.xaml. Je vais faire quelques tests avec des exemples de projets pour voir si je peux isoler le problème, mais au moins je sais que je suis sur la bonne voie. Merci.
J'ai une assemblée nommée "X" et un "Thèmes" du dossier "Thèmes" contient des génériques.xaml + un myControl.xaml. Comment doit-générique xaml look de la fusion du dictionnaire bits ? J'ai essayé de suivre ce que vous avez écrit ci-dessus, mais j'ai échoué
OriginalL'auteur Jared Bienz - MSFT
Si
MySecondControl.xaml
utilise une ressource deMyFirstControl.xaml
l'ordre de les ajouter à générique.xaml est ResourceDictionary ne sera pas question. Vous aurez besoin d'inclure de manière redondanteMyFirstControl.xaml
dansMySecondControl.xaml
.MySecondControl.xaml
doit contenir:OriginalL'auteur ShawnFeatherly
J'ai simplement travaillé par cette question. ResourceDictionaries ne soutien MergedDictionaries, mais pour personnalisé basé sur un modèle contrôles de l'utilisation de Générique.xaml, Générique.xaml ne prend pas en charge MergedDictionaries. Il y a donc deux choix: (1) soit vous vous répartissez vos modèles Génériques.xaml; ou (2) vous créez YourOwnDictionary.xaml, de fusionner l'ensemble de vos dictionnaires en YourOwnDictionary.xaml, et la référence YourOwnDictionary.xaml de contrôles utilisateur et les pages. Cela semble être une caractéristique/bug à partir d'anciennes versions de Silverlight ne supportant pas fusionné les dictionnaires.
OriginalL'auteur Rana Ian