2013-10-03 6 views
0

J'ai déjà lu un tas de publications sur le dictionnaire des ressources, mais aucune ne fonctionne dans mon cas. Ma solution est formée uniquement par les DLL, qui sont consommées à partir de l'application Delphi (VCL). Ces dlls, a des formes Windows (WPF), et ainsi de suite ..Partager des ressources entre dlls

Où puis-je mettre un dictionnaire de ressources, de sorte que toutes les DLL peuvent réutiliser alors?

+2

Dans votre dossier 'bin', dans le GAC? Qu'avez-vous essayé? – CodeCaster

Répondre

0

Vous ne savez pas exactement ce que vous entendez par "ressources", mais vous pouvez ajouter des fichiers dans un .dll en les incluant dans votre projet (créez simplement un nouveau dossier "ressources", puis faites un clic droit et add existing item).

Faites un clic droit et sélectionnez properties sur le fichier que vous venez d'ajouter. Sous Build Action, sélectionnez Embedded Resource. Lorsque vous compilez votre projet maintenant, le fichier sera inclus dans le fichier .dll.

Je suis sûr que vous pouvez trouver beaucoup d'informations sur l'accès aux ressources intégrées; voir this SO post, for instance, about reading from an embedded text file.

+0

Je veux dire "dictionnaire de ressources", pour configurer les attributs visuels des contrôles au même endroit. – Beetlejuice

0

Je reçois cela fonctionne, suivant ces étapes:

  1. créer un nouveau projet dll et Ajouter un nouvel élément « Ressource Dictionay (WPF) » en elle. Dans ce fichier, je déclare mes ressources personnalisées, comme ceci:

    <Style TargetType="Button"> 
        <Style.Triggers> 
         <Trigger Property="IsEnabled" Value="False"> 
          <Setter Property="Opacity" Value="0.30"></Setter> 
         </Trigger> 
         <Trigger Property="IsEnabled" Value="True"> 
          <Setter Property="Opacity" Value="1"></Setter> 
         </Trigger> 
        </Style.Triggers> 
        <Setter Property="Background" Value="Transparent"></Setter> 
        <Setter Property="BorderBrush" Value="Transparent"></Setter> 
    </Style> 
    

  2. Dans mes autres projets, je me réfère à cette ressource de cette façon en XAML:

    <Window.Resources> 
    <ResourceDictionary> 
        <ResourceDictionary.MergedDictionaries> 
         <ResourceDictionary Source="/my.project.here;component/Assets/CommonDictionary.xaml"/> 
        </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
    

  3. Thats it.

Questions connexes