Ho creato un assembly di libreria di classi in cui ho creato controlli personalizzati e ho definito gli stili predefiniti nel file generic.xaml.Gli stili da generic.xaml non vengono applicati
Sembra che questo sia un problema abbastanza comune, a condizione che molte persone lo pubblichino. Tuttavia non sono riuscito a trovare alcuna risposta utile per il mio caso.
- il generic.xaml si trova nella cartella Temi.
- il file generx.xaml Build Action è impostato su Page.
- il ThemeInfo è correttamente definito nel mio AssemblyInfo.cs.
Nella mia applicazione di test, se mi fondo manualmente il file generic.xaml dai miei controlli personalizzati assembly nella applicazione di file App.xaml come questo:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
poi i controlli personalizzati sono correttamente a tema, ma se non unisco manualmente il generic.xaml, i controlli vengono visualizzati con il tema predefinito di Windows.
Potrebbe dirmi per favore cosa sto dimenticando e/o facendo di sbagliato?
Ulteriori informazioni:
-
attributo di assembly
mio ThemeInfo è definito come segue:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(Nota: il risultato è lo stesso con qualsiasi combinazione di parametri per l'attributo ThemeInfo
Ci sono altri due file .xaml accanto al file generic.xaml nella cartella Temi.
- C'è una sottocartella nella cartella Temi che contiene un altro file .xaml.
Do hai ancora DefaultStyleKeyProperty impostato in un costruttore statico sui tuoi controlli personalizzati? – Nogusta
Hai avuto fortuna a capirlo? Ho quasi la stessa identica cosa in corso con il mio gruppo di controlli personalizzati. Se aggiungo un riferimento in App.config al file generic.xaml, i controlli sono a tema. Se lo lascio fuori non ottengo niente. –
Questo link è valido? http://social.msdn.microsoft.com/Forums/vstudio/en-US/2e1fb162-e828-4fd9-832f-d2791c1980b4/isnt-genericxaml-supposed-to-loaded-automatically Ho affrontato lo stesso problema, e penso che questa sia la causa principale –