ho mantenere le risorse della mia app in una DLL separata e di riferimento nel mio EXE principale utilizzando qualcosa di simile in App.xaml: -WPF unisce i dizionari delle risorse in ogni controllo utente: cattiva idea?
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MyThemesAssembly;component/Themes/Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
Quando modifico una finestra che è nel progetto EXE principale, il progettista VS2010 non riconosce alcuna risorsa dall'assieme, quindi non vedo alcuno stile applicato (in realtà non è un problema visto che lavoro sempre nella vista XAML). Tuttavia, Resharper non riconosce questi nomi di risorse esterne, risultando in un sacco di scarabocchi sotto nomi di risorse quando sto modificando XAML.
Ho scoperto che è possibile correggere sia la progettazione VS che il Resharper includendo il suddetto XAML in ogni finestra e controllo utente, ma questo avrà un effetto negativo sulla memoria e/o sulle prestazioni? Ogni finestra riceverà una copia separata delle risorse?
Bene, i bug nell'IDE e gli strumenti non dovrebbero influenzare il codice. Inoltre, includere il dizionario delle risorse in ogni singolo controllo è un modo incline agli errori (cosa succede se decidi di rinominare il dizionario? Per aggiungerne un altro?). – Vlad
Vorrei comunque provare ad aggiungere una stranezza al problema in modalità progettazione. (Forse questo aiuterà: 'public class MyUserControlBase: UserControl {public MyUserControlBase() {if (DesignerProperties.GetIsInDesignMode (this)) LoadExternalDictionariesExplicitlyHere(); ...') – Vlad
@Vlad Ho imparato a convivere con gli scarabocchi - questo approccio di fissaggio di Resharper è davvero solo un "bello da avere". Non penso che la ridenominazione/aggiunta di risorse sarebbe un problema - nel mio esempio XAML sopra, "Generic.xaml" si fonde solo un carico di altre risorse in quell'assembly, quindi è facile aggiungerne di nuove. Sono più preoccupato se includere in ogni finestra farà esplodere la memoria/le prestazioni dell'app (o VS2010). –