Stile von Generika.xaml nicht angewendet werden
Machte ich eine Bibliothek-Klasse Montage in die ich erstellt benutzerdefinierte Steuerelemente, und ich definierte die Standard-Stile in der Generika.der xaml-Datei.
Es scheint, dies ist ein ganz Allgemeines problem, solange viele Menschen sind über die Entsendung es.
Aber ich konnte keine nützliche Antwort für mein Fall.
- die Generika.xaml ist in den Themes-Ordner.
- die generix.der xaml-Datei, die Build Action auf der Seite.
- die ThemeInfo ordnungsgemäß definiert in meine AssemblyInfo.cs.
In meiner test-Anwendung, wenn ich manuell Zusammenführen, die generische.xaml-Datei von meinem custom controls assembly in der Anwendung App.xaml-Datei wie folgt:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyControlsAssembly;component/Themes/generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
dann die benutzerdefinierten Steuerelemente sind richtig Themen, aber wenn ich nicht manuell Zusammenführen, die generische.xaml werden die Steuerelemente angezeigt, mit dem Standard-Windows-Thema.
Könnten Sie mir bitte sagen, was ich vergessen und/oder falsch ?
Zusätzliche info:
- Meine ThemeInfo assembly-Attribut ist wie folgt definiert:
[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, ResourceDictionaryLocation.SourceAssembly)]
(Hinweis: das Ergebnis ist genau das gleiche mit jeder beliebigen Kombination von Parametern für die ThemeInfo Attribut)
- Gibt es zwei andere .xaml-Dateien, die neben dem generischen.xaml-Datei in den Ordner "Themes".
- Gibt es einen Unterordner in den Ordner "Themes", die sich mit einem anderen .der xaml-Datei.
Viel Glück, herauszufinden dieses heraus? Ich habe fast exakt das gleiche, was Los ist mit meine benutzerdefinierten Steuerelemente Montage. Wenn ich eine Referenz in App.config-generic.der xaml-Datei, die dann die Kontrollen sind Themen. Wenn ich das Feld leer lassen ich nichts kommen.
Funktioniert dieser link gelten? social.msdn.microsoft.com/Forums/vstudio/en-US/... nahm ich stehe vor dem gleichen problem, und ich denke, das ist die Ursache
Eine Lösung für dieses Problem? Ich erlebe genau das gleiche, und die Schritte, die hier vorgeschlagen oder in blogs.magnatis.com/tim/dude-wheres-my-default-style hilft nicht. Ich muss der merge-in-App.xaml wie in diesem post.
Hinzufügen ThemeInfo in AssemblyInfo.cs der control library hat den trick für mich. Ich verwendet (Keine, SourceAssembly).
InformationsquelleAutor Sebastien ROBERT | 2012-06-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie die folgende Zeile in das benutzerdefinierte Steuerelement-Konstruktor:
Dann, wenn Sie eine generische.der xaml-Datei im Ordner "themes", mit dem folgenden Muster Stil:
Nun der Stil wird automatisch angewendet-ohne zusätzliche Zusammenführen.
Sie starten mit einer leeren Lösung und sehen, wenn Sie es bekommen können von dort zu arbeiten?
Das ist das, was ich Tue. Ich bin der Ableitung von Xceed Data-Grid. Wenn ich eine neue MyControl : Kontrolle oder MyButton : Button, es funktioniert. Vielleicht ist es Xceed theme-support ins Spiel kommt hier, und ich muss schauen in Ihre Lehrbücher zu Themen, oder akzeptieren Sie einfach die merge-Wörterbuch in meiner Anwendung. Es sei denn, andere Ideen Oberfläche.
InformationsquelleAutor Eternal21
Anwenden, Standard-Stile in Themes\Generic.xaml in meine benutzerdefinierten Steuerelemente, die Bibliothek, die ich beschlossen, zu suchen inspiration aus einer gut etablierten open-source-controls-Bibliothek (MahApps). Dieses Projekt gibt Ihnen ein wirklich gutes Beispiel dafür, wie die Struktur und das layout eines custom controls library.
Schneiden eine lange Geschichte kurz zu, um Ihr Standard-Stile in Themes\Generic.xaml benötigen Sie folgende Komponenten in der AssemblyInfo.cs-Datei in Ihrem benutzerdefinierten Steuerelemente Bibliothek:
In meinem Fall, meine benutzerdefinierte Steuerelemente AssemblyInfo.cs sah etwas wie:
InformationsquelleAutor Justin T
Nicht sicher, ob dies funktioniert in WPF, aber es funktioniert für mich in Silverlight:
Konstruktor:
Stil:
InformationsquelleAutor MikeF
Ich hatte das gleiche problem, durch das folgende Attribut in das benutzerdefinierte Steuerelement-assembly:
Ändern
UltimateResourceFallbackLocation.Satellite
zuUltimateResourceFallbackLocation.MainAssembly
oder entfernen Sie den zweiten parameter komplett behoben das problem für mich (Sie können auch das Attribut entfernen, wenn Sie nicht brauchen, um zu definieren die Neutrale Sprache der assembly).InformationsquelleAutor Jorge