2017-03-23 1 views
0

J'ai un projet principal qui produit mon exécutable. Dans l'App.xaml je définis quelques styles de base. Maintenant, je veux utiliser ces styles dans d'autres projets respectivement dans d'autres bibliothèques (dll). J'ai lu toutes les questions sur ce problème ici dans stackoverflow, mais ça ne marche pas pour moi. Serait-ce, que j'ai ce problème, parce que je veux utiliser les styles dans les bibliothèques référencées par le projet principal?Comment utiliser les styles définis dans App.xaml dans une autre bibliothèque dans une application wpf?

Merci, Alex

Répondre

2

Vous devez déplacer ces styles à un Resource Dictionary séparé qui pourrait être utilisé par plusieurs projets/applications.

Créer le dictionnaire des ressources et l'ajouter à votre projet, puis la référence dans votre App.xaml:

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="\shared\MyResources.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 
2

Créer une nouvelle bibliothèque de l'utilisateur WPF, ajoutez un ResourceDictionary à ce projet et déplacer vos styles de App.xaml à ce ResourceDictionary. vous ajoutez ensuite une référence (Projet-> Ajouter une référence dans Visual Studio) à ce nouveau projet à partir de votre application WPF et toute autre application dans laquelle vous souhaitez utiliser ces styles et fusionner les ResourceDictionary dans le App.xaml:

<Application x:Class="WpfApplication1.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary Source="pack://application:,,,/WpfControlLibrary1;component/ResourceDictionary1.xaml"/> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 
</Application> 

Évidemment, vous devez changer "WpfControlLibrary1" et "ResourceDictionary1" pour les noms réels du nouveau projet et ResourceDictionary respectivement. De cette façon, vous avez déplacé les styles communs vers un ensemble autonome que vous pourriez utiliser dans de nombreuses applications différentes.