Les Styles de génériques.xaml ne sont pas appliquées
J'ai fait une classe de la bibliothèque de l'assemblée dans laquelle j'ai créé des contrôles personnalisés, et j'ai défini les styles par défaut dans le générique.fichier xaml.
Il semble que ce soit un problème assez fréquent, aussi longtemps que beaucoup de gens l'affichage sur elle.
Cependant, je ne pouvais pas trouver une réponse utile pour mon cas.
- le générique.xaml est dans le dossier Thèmes.
- la generix.fichier xaml Action de génération est définie à la Page.
- la ThemeInfo est correctement défini dans mon AssemblyInfo.cs.
Dans mon test de l'application, si j'ai fusionner manuellement les génériques.fichier xaml de mon contrôles personnalisés assemblage dans l'application de l'App.fichier xaml comme ceci:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
ensuite les commandes personnalisées sont correctement sur le thème, mais si je n'ai pas fusionner manuellement les génériques.xaml, les contrôles apparaissent avec le thème par défaut de Windows.
Pourriez-vous s'il vous plaît dites-moi ce que je n'oublie pas et/ou faire du tort ?
Informations supplémentaires:
- Mon ThemeInfo assemblée attribut est défini comme suit:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(Remarque: le résultat est le même avec n'importe quelle combinaison de paramètres pour le ThemeInfo attribut)
- Il y a deux autres .les fichiers xaml à côté du générique.fichier xaml dans le dossier Thèmes.
- Il y a un sous-dossier dans le dossier Thèmes, qui contient lui-même un autre .fichier xaml.
Aucune chance de trouver celui-ci? J'ai presque exactement la même chose avec mes contrôles personnalisés de l'assemblée. Si j'ajoute une référence dans l'App.config pour le générique.fichier xaml puis les commandes sont à thème. Si je laisse cela je ne reçois rien.
Ce lien s'appliquer? social.msdn.microsoft.com/Forums/vstudio/en-US/... j'ai pris suis confronté au même problème, et je pense que c'est la cause de racine
Une solution à ce problème? Je suis en train de vivre exactement la même chose, et en suivant les étapes suggérées ici ou dans le blogs.magnatis.com/tim/dude-wheres-my-default-style n'aide pas. J'ai besoin d'inclure la fusion en Application.le code xaml comme dans ce post.
L'ajout de ThemeInfo dans AssemblyInfo.cs de la bibliothèque de contrôle a fait l'affaire pour moi. J'ai utilisé (Aucun, SourceAssembly).
OriginalL'auteur Sebastien ROBERT | 2012-06-22
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de la ligne suivante dans votre contrôle personnalisé constructeur:
Alors si vous avez un générique.fichier xaml à l'intérieur de dossier thèmes, avec l'exemple suivant: le style
Maintenant le style sera automatiquement appliqué sans supplément de fusion.
Commencer avec une solution de blanc et de voir si vous pouvez l'obtenir pour travailler à partir de là?
C'est ce que je suis en train de faire. Je suis découlant de Xceed Grille de Données. Si je crée un nouveau MyControl : Contrôle ou Monbouton : Bouton, il fonctionne. C'est peut-être Xceed prise en charge des thèmes qui entre en jeu ici, et j'ai besoin de les regarder dans les tutoriels sur des thèmes, ou tout simplement accepter la fusion dictionnaire dans mon application. À moins que d'autres idées de surface.
OriginalL'auteur Eternal21
Pour appliquer des styles par défaut des Thèmes\Générique.xaml dans mes contrôles personnalisés de la bibliothèque, j'ai décidé de chercher l'inspiration à partir d'un open source bibliothèque de contrôles (MahApps). Ce projet vous donne un très bon exemple de comment la structure et la mise en page personnalisée bibliothèque de contrôles.
Couper une longue histoire courte, pour obtenir vos styles par défaut des Thèmes\Générique.xaml, vous devez inclure les éléments suivants dans le AssemblyInfo.cs de fichier dans votre personnalisé bibliothèque de contrôles:
Dans mon cas, mon contrôles personnalisés AssemblyInfo.cs cherché quelque chose comme:
OriginalL'auteur Justin T
Ne sais pas si cela fonctionne dans WPF, mais il travaille pour moi dans Silverlight:
Constructeur:
Style:
OriginalL'auteur MikeF
J'ai eu le même problème en raison de l'attribut suivant dans le contrôle personnalisé de l'assemblée:
Changer
UltimateResourceFallbackLocation.Satellite
àUltimateResourceFallbackLocation.MainAssembly
ou la suppression de la deuxième paramètre complètement résolu le problème pour moi (vous pouvez également supprimer l'attribut si vous n'avez pas besoin de définir la langue "neutre" de votre assemblée).OriginalL'auteur Jorge