2016-05-04 17 views
0

Ich habe mehrere Klassenbibliotheken, die jeweils ihre eigenen benutzerdefinierten Benutzersteuerelemente enthalten. Ich würde gerne eine separate gemeinsame Bibliothek haben, die alle Ressourcenwörterbücher enthält, die in meinem Projekt verwendet werden, so dass ich die Hintergrundfarbe aller in meinem Projekt verwendeten Steuerelemente von einem Ort aus ändern kann.Wie sollte ich einen Stil auf mehrere Klassenbibliotheken anwenden?

Was ist der beste Weg, all diese Steuerelemente von einem zentralen Ort aus zu gestalten?

Antwort

0

Ich habe die Ressourcenwörterbuchdateien in einem bestimmten Projekt, und überall, wo ich sie referenzieren muss, füge ich sie mit der URI-Syntax "pack" zusammen. So in einer Benutzersteuerung, zum Beispiel: -

<UserControl.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/SomeApplication.Common.UI;component/Themes/Metro/colors.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/SomeApplication.Common.UI;component/Themes/Metro/buttonstyles.xaml" /> 
      <ResourceDictionary Source="pack://application:,,,/SomeApplication.Common.UI;component/Themes/Metro/fonts.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 

     <!-- Any "local" user control styles go here --> 
    </ResourceDictionary> 
</UserControl.Resources> 

Die "Pack" Syntax nimmt diese Form: -

Pack: // Anwendung: ,,,/[assembly name]; Komponente/[Ressourcenpfad & Dateiname] „

im obigen Beispiel‚SomeApplication.Common.UI‘ist der Name meines Projekts/Montage, wo die Ressourcendateien gefunden werden können, die Dateien in einem Projekt-Unterordner befinden namens“ \ Themes \ Metro ". Das Projekt mit Ihren Benutzersteuerelementen wird offensichtlich benötigt um das Projekt/die Assembly mit den Ressourcen zu referenzieren!

Sie müssen auch nicht in den einzelnen Ressourcen-Dateien zusammenführen, damit die Dinge funktionieren. Die Anwendung wird immer noch kompiliert und ausgeführt, es ist nur so, dass Sie im XAML-Editor unter den Stilnamen verschnörkelt werden, da Visual Studio (oder Resharper ?!) sie zur Entwurfszeit nicht auflösen kann.

Verwandte Themen