Ich habe eine Klassenbibliotheksassembly erstellt, in der ich benutzerdefinierte Steuerelemente erstellt habe, und ich habe die Standardstile in der Datei generic.xaml definiert.Stile aus generic.xaml werden nicht angewendet
Es scheint, dass dies ein ziemlich häufiges Problem ist, solange viele Leute darüber schreiben. Allerdings konnte ich keine brauchbare Antwort für meinen Fall finden.
- Die Datei generic.xaml befindet sich im Ordner Designs.
- Die Build-Aktion generix.xaml ist auf Seite festgelegt.
- Die ThemeInfo ist ordnungsgemäß in meiner AssemblyInfo.cs definiert.
In meinem Test-Anwendung, wenn ich die generic.xaml Datei von meiner benutzerdefinierten Steuerbaugruppe in die Anwendung App.xaml wie diese manuell fusionieren Datei:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
dann die benutzerdefinierten Kontrollen richtig sind Themen, Wenn ich die Datei generic.xaml jedoch nicht manuell zusammenführe, werden die Steuerelemente mit dem Standard-Windows-Design angezeigt.
Können Sie mir bitte sagen, was ich vergesse und/oder falsch mache?
Zusätzliche Informationen:
Mein ThemeInfo Assembly-Attribut wird wie folgt definiert:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(Hinweis: das Ergebnis ist genau das gleiche mit einem beliebigen Kombination von Parametern für das ThemeInfo Attribut)
Es gibt zwei weitere .xaml-Dateien neben der Datei generic.xaml im Ordner Themes.
- Es gibt einen Unterordner im Ordner "Themes", der selbst eine andere .xaml-Datei enthält.
Do Sie haben immer noch die DefaultStyleKeyProperty in einem statischen Konstruktor auf Ihren benutzerdefinierten Steuerelementen festgelegt? – Nogusta
Haben Sie Glück, dieses herauszufinden? Ich habe fast genau dasselbe mit meiner Custom Controls Assembly. Wenn ich in der Datei "generic.xaml" eine Referenz in App.config hinzufüge, sind die Steuerelemente thematisch ausgerichtet. Wenn ich das hinterlasse, bekomme ich nichts. –
Gilt dieser Link? http://social.msdn.microsoft.com/Forums/vstudio/en-US/2e1fb162-e828-4fd9-832f-d2791c1980b4/isnt-genericxaml-supposed-to-loaded-automatically Ich nahm mir das gleiche Problem, und ich denke, das ist die Ursache –