Frage

Ich habe versucht, herauszufinden, wie meine Resource Dateien für die Wiederverwendung zu organisieren und mit anderen Mitgliedern meines Teams teilen.

Ich halte über „generic.xaml“ kommen, aber wenn ich auf MSDN suche generic.xaml oder einfach nur eine Google-Suche, scheine ich nur Blog-Posts und Forum, um Fragen zu erhalten, die es erwähnen passieren - ich kann‘ t scheinen auf etwas wirklich maßgebliche und klar zu treffen.

Was ist der Unterschied zwischen generic.xaml und MyRandomlyNamedResourceDictionary.xaml? Es scheint so, so oder so, ich habe ResourceDictionaries in Bibliotheken mit dem Source-Attribute gespeichert verweisen. . Z. B,:

<Application.Resources>
    <ResourceDictionary
        Source="/CommonLibraryWpfThemes;component/Themes/Generic.xaml"
</Application.Resources>

Also, was den Vorteil hat generic.xaml genau zur Verfügung stellen? Macht es einen Zweck hat, wenn ich nicht zu geben, meine Anwendung mehr „schaut“ versuchen (das heißt, wenn ich nur ein Thema habe)?

War es hilfreich?

Lösung

Jede Kontrolle in WPF hat einen Standardstil, der unter anderem die Kontrolle der Standard ControlTemplate bietet. WPF sieht für den Standard-Stil in einem speziellen Ressourcenverzeichnis im Ordner Themen in der gleichen Anordnung wie die Kontrolle. Der Schlüssel für den Standard-Stil durch die Control.DefaultStyleKey Abhängigkeitseigenschaft zur Verfügung gestellt wird, ist der Standardwert, von denen in jeder Unterklasse der Steuerung außer Kraft gesetzt wird.

Der Name des Ressourcenverzeichnisses hängt von dem aktuellen Windows-Design z.B. auf Vista die Aero-Design verwenden, wird das Wörterbuch Aero.NormalColor.xaml, auf XP mit dem Standard-Theme nannte es Luna.NormalColor.xaml ist. Wenn der Stil nicht im Thema Wörterbuch gefunden wird, sucht es in generic.xaml das heißt für die Kontrollen, deren Aussehen nicht von dem Thema ab.

Dies gilt nur für alle benutzerdefinierten Steuerelemente, die Sie heißt Klassen von Control abgeleitet definiert haben, direkt oder indirekt. Sie können den Standardstil für eine Standard-Steuerung ändern, indem daraus abgeleiteten und DefaultStyleKeyProperty.OverrideMetadata im statischen Konstruktor aufrufen, aber Sie dann den vollen Stil einschließlich Control liefern müssen.

Beachten Sie, dass WPF sagen können, in einer externen Baugruppe für Ihren Standardstil zu suchen, indem das ThemeInfo Attribut. Die externe Montage muss <YourAssembly>.<ThemeName>.dll benannt werden z.B. PresententationFramework.Aero.dll.

Andere Tipps

Für eine generic.xaml Datei (Groß- und Kleinschreibung), etwas Besonderes zu sein, zwei Bedingungen erfüllt sein müssen:

  • Es muss sub-Stammordner in dem Projekt in den Themen sein
  • Die Montage muss mit dem ThemeInfoAttribute markiert werden (in der Regel in AssemblyInfo.cs)

Dann dient es als Standard-Lookup-Standort für alle Standard-Stile, die Sie auf Ihre Steuerelemente anwenden möchten. Beachten Sie auch, dass für einen Stil den Standard sein, um es sowohl seine Target und x erklären muss. Key wie die Art der Steuerung, die gestylt werden soll

Wenn Sie mögen Ihre Anwendung gesamte Themen und Themenschalt hinzuzufügen, dass mit einiger Codierung durchgeführt wird, definiert diese Technik lediglich den Standard-Ressource-Wörterbuch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top