Ich halte meine App-Ressourcen in einem separaten DLL und verweise sie in meinem Haupt-EXE so etwas wie dies in App.xaml mit: -WPF fusionierte Ressourcenwörterbücher in jeder Benutzersteuerung - schlechte Idee?
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MyThemesAssembly;component/Themes/Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
Wenn ich ein Fenster bearbeiten, die in der Haupt EXE-Projekt ist, die VS2010-Designer erkennt keine Ressourcen von der anderen Assembly, daher wird kein Styling angewendet (nicht wirklich ein Problem, da ich immer in der XAML-Ansicht arbeite). Allerdings erkennt Resharper diese externen Ressourcennamen auch nicht, was bei der Bearbeitung von XAML zu vielen Squiggles unter den Ressourcennamen führt.
Ich habe festgestellt, dass ich sowohl den VS-Designer und Resharper durch Einbeziehung der oben genannten XAML in jedem Fenster und Benutzerkontrolle beheben kann, aber wird dies negative Auswirkungen auf Speicher und/oder Leistung haben? Erhält jedes Fenster eine separate Kopie der Ressourcen?
Nun, die Fehler in der IDE und in den Tools sollten Ihren Code nicht beeinflussen. Außerdem ist das Ressourcenwörterbuch in jedem einzelnen Steuerelement ein fehleranfälliger Weg (was ist, wenn Sie das Wörterbuch umbenennen möchten, um ein weiteres hinzuzufügen?). – Vlad
Ich würde jedoch versuchen, eine Eigenart hinzuzufügen, die das Problem im Entwurfsmodus umgeht. (Vielleicht hilft dies: 'öffentliche Klasse MyUserControlBase: UserControl {öffentliche MyUserControlBase() {if (DesignerProperties.GetIsInDesignMode (this)) LoadExternalDictionariesExplicitelyHere(); ...') – Vlad
@Vlad Ich habe gelernt, mit den Squiggles leben - das Ansatz der Reparatur Resharper ist wirklich nur ein "nice to have". Ich denke nicht, dass das Umbenennen/Hinzufügen von Ressourcen ein Problem darstellt - in meinem obigen Beispiel von XAML führt "Generic.xaml" selbst eine Ladung anderer Ressourcen in dieser Assembly zusammen, so dass es einfach ist, neue hinzuzufügen. Es macht mir mehr Sorgen, ob die in jedem Fenster die Speicherleistung der App (oder VS2010) beeinträchtigen. –