Überblick
Metadata Utilities enthält Controls zur Anzeige von diversen Feldtypen im Theme. Diese Controls ermöglichen es dem Anwender, die einzelnen Felder nach Präfixen zu trennen, einzelne Werte von der Anzeige auszuschließen sowie direkt im Theme Werte zu den Feldern hinzuzufügen oder entfernen.
Derzeit nutzen die Controls ein dem Standard-Theme vergleichbares festes Layout mit einem Grid mit zwei gleich breiten Spalten, wovon die linke ein Icon und den Feldnamen, sowie die rechte die jeweiligen Werte untereinander anzeigt. Hat der Anwender einem Feldtyp mehrere Präfixe als virtuelle Felder eingerichtet, werden diese wie einzelne Felder untereinander dargestellt. Dies lässt sich zu einem gewissen Grad mit Styles beeinflussen.
Die Controls können so die Standard-Controls zur Anzeige dieser Werte ersetzen.
Die Controls und wie man sie einbindet
Felder
Feld | Control |
---|---|
Alterseinstufungen | MetadataUtilities_AgeRatingPrefixItemControl |
Entwickler | MetadataUtilities_DeveloperPrefixItemControl |
Features | MetadataUtilities_FeaturePrefixItemControl |
Genres | MetadataUtilities_GenrePrefixItemControl |
Kategorien | MetadataUtilities_CategoryPrefixItemControl |
Plattformen | MetadataUtilities_PlatformPrefixItemControl |
Publisher | MetadataUtilities_PublisherPrefixItemControl |
Regionen | MetadataUtilities_RegionPrefixItemControl |
Schlagwörter | MetadataUtilities_TagPrefixItemControl |
Serien | MetadataUtilities_SeriesPrefixItemControl |
Code
Die Controls können mit folgendem Code eingefügt werden:
<ContentControl x:Name="MetadataUtilities_TagPrefixItemControl" Tag="" Visibility="{Binding TagVisibility}" />
- x:Name: Stellt den Namen des gewünschten Controls aus der obigen Tabelle dar.
- Tag: Gibt das Icon an, das links neben dem Namen des Felds auftauchen soll. Muss als Zeichencode für die IcoFont angegeben werden.
- Visibility: Steuert die Sichtbarkeit und kann sich wie hier im Beispiel nach der Sichtbarkeit des eigentlichen Controls für den Feldtyp orientieren, um es über die Playnite-Einstellungen deaktivieren zu können.
Styles
Optional können natürlich weitere Attribute wie Margin etc angegeben werden. Die Controls verwenden zusätzlich folgende Styles, um Teile des Controls zu gestalten:
- MdStyleOuterPanel: Stil für das äußere DockPanel, in dem sich der Inhalt des Controls befindet.
- MdStyleGrid: Für jedes einzelne durch Präfixe vorgegebene virtuelle Feld wird ein eigenes Grid hinzugefügt, das über diesen Stil beeinflusst werden kann. Gibt es keine Präfixe, enthält das Control dieses Grid nur ein Mal.
- MdStyleIcon: Stil für das Icon vom Typ TextBlock. Sollte im Theme das Icon nicht als richtiges Icon dargestellt werden, sollte dieser Style z.B. so verwendet werden, um die Font auf IcoFont zu stellen:
<Style x:Key="MdStyleIcon" TargetType="TextBlock" BasedOn="{StaticResource BaseTextBlockStyle}"> <Setter Property="Width" Value="24"/> <Setter Property="FontFamily" Value="{StaticResource FontIcoFont}" /> <Setter Property="Foreground" Value="{DynamicResource GlyphBrush}" /> </Style>
- MdStyleTitle: Stil des Namens des Feldes vom Typ TextBlock.
- MdStyleItemOuter: Stil des ItemControls, in dem sich die Liste der Werte des Felds befindet.
- MdStyleItemPanel: Stil des StackPanels, in dem sich die einzelnen Werte befinden.
- MdStyleItemButton: Stil des Buttons, in dem ein Wert dargestellt wird.