Werken met Documentthema's
Werken met documentthema’s
Deze gids toont hoe je het kleur- en lettertype-schema dat Word-documenten delen met andere Office-toepassingen – het documentthema – kunt lezen en aanpassen met behulp van Theme, ThemeColors, en ThemeFonts in Aspose.Words FOSS voor .NET. Het thema van een document is het palet en de lettertype-combinatie waar themabewuste opmaak elders in het objectmodel naar verwijst in plaats van een specifieke kleur of lettertype-naam hard te coderen.
Het thema-object
Document.Theme retourneert een Theme-instantie voor het document. Theme.Colors is een ThemeColors-object dat de twaalf themakleuren van het document bevat; Theme.MajorFonts en Theme.MinorFonts zijn ThemeFonts-objecten die respectievelijk de kop- en body-lettertype-sets bevatten.
Thema-kleuren
ThemeColors maakt twaalf schrijfbare Color eigenschappen: Dark1, Light1, Dark2, Light2, Accent1 through Accent6, Hyperlink, en FollowedHyperlink. Opmaakobjecten elders in het document – Border.ThemeColor, Shading.ForegroundPatternThemeColor / BackgroundPatternThemeColor, Fill.ForeThemeColor / BackThemeColor, Stroke.ForeThemeColor / BackThemeColor, en Font.ThemeColor – houd een ThemeColor enumwaarde (Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink, plus Text1, Text2, Background1, Background2, en None) die identificeert which thema-kleurslot wordt toegepast; de daadwerkelijke Color waarde voor dat slot komt van de overeenkomstige ThemeColors eigenschap aan Document.Theme.Colors.
Thema-lettertypen
ThemeFonts exposeert drie beschrijfbare string eigenschappen: Latin (voor Latijnse tekens), EastAsian en ComplexScript — de lettertype-namen die worden gebruikt voor elk script wanneer een opmaakobject terugvalt op het thema. Font.ThemeFont, ThemeFontAscii, ThemeFontFarEast, ThemeFontOther en ThemeFontBi bevatten elk een ThemeFont enum-waarde (Major, Minor of None) die aangeeft of een bepaald Font object terugvalt op Theme.MajorFonts of Theme.MinorFonts voor een specifiek scriptbereik, in plaats van een eigen expliciete lettertype-naam op te slaan.
Tips en beste praktijken
- Wijzig een kleur in elke thema-bewuste rand, schaduw, vulling en lettertype in één bewerking door de relevante
ThemeColorseigenschap opDocument.Theme.Colorsbij te werken, in plaats van het document door te lopen om elk opmaakobject afzonderlijk bij te werken. - Controleer of de
ThemeColorofThemeFonteigenschap van een opmaakobjectNoneis voordat je aanneemt dat het terugvalt op het thema —Nonebetekent dat het een eigen explicieteColorof lettertype-naam bevat. Theme.MajorFontslevert doorgaans koplettertypen enTheme.MinorFontsbody-lettertypen, overeenkomstig de thema-lettertypekiezer van Word.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
Het wijzigen van Document.Theme.Colors.Accent1 heeft geen invloed op de vulling van een vorm | De Fill.ForeThemeColor van de vorm is ThemeColor.None, dus gebruikt deze een expliciete kleur in plaats van een thema-slot | Stel Fill.ForeThemeColor in op de gewenste ThemeColor-waarde zodat deze zich aan het thema overlaat |
Het gerenderde lettertype van een Font komt niet overeen met Theme.MajorFonts.Latin | De Font.ThemeFont (of script-specifieke variant) is ThemeFont.None, dus wordt in plaats daarvan de eigen naam van het lettertype gebruikt | Stel de relevante ThemeFont eigenschap in op Major of Minor |
FAQ
Hoe lees ik de themakleuren van een document?
Lees Document.Theme.Colors, een ThemeColors object met Color eigenschappen voor elk van de twaalf themakleuren-slots – Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink en FollowedHyperlink.
Hoe wijzig ik de accentkleur van het document overal waar deze wordt gebruikt?
Stel Document.Theme.Colors.Accent1 (of de betreffende accent-slot) in op een nieuwe Color; elk opmaakobject waarvan de ThemeColor-eigenschap die slot verwijst, neemt de wijziging over.
Wat is het verschil tussen ThemeColors en ThemeColor?
ThemeColors (op Document.Theme.Colors) is het object dat de twaalf daadwerkelijke Color waarden voor het document bevat. ThemeColor is de enum die elders wordt gebruikt (Border, Shading, Fill, Stroke, Font) om één van die slots bij naam te refereren in plaats van een kleur direct op te slaan.
Hoe stel ik in welk themalettertype een Font object gebruikt?
Stel Font.ThemeFont (of de script-specifieke ThemeFontAscii / ThemeFontFarEast / ThemeFontOther / ThemeFontBi) in op ThemeFont.Major of ThemeFont.Minor; de daadwerkelijke lettertype-naam komt dan uit Document.Theme.MajorFonts of MinorFonts.
API Reference Samenvatting
| Klasse / Enum | Beschrijving |
|---|---|
Theme | Documentthema, via Document.Theme; MajorFonts, MinorFonts, Colors |
ThemeColors | Twaalf thema Color slots: Dark1, Light1, Dark2, Light2, Accent1-Accent6, Hyperlink, FollowedHyperlink |
ThemeFonts | Themalettertype-namen per script: Latin, EastAsian, ComplexScript |
ThemeColor | Enum die een themakleur-slot identificeert; gebruikt door Border, Shading, Fill, Stroke, Font |
ThemeFont | Enum die het Major/Minor thema-lettertypegebruik identificeert; gebruikt door Font |