Werken met stijlen
Werken met stijlen
Deze gids laat zien hoe je werkt met alinea-, teken-, tabel- en lijststijlen in Aspose.Words FOSS voor .NET — opzoeken en toepassen van ingebouwde en aangepaste stijlen, en per-regio voorwaardelijke opmaak configureren op tabelstijlen.
Een Style object vertegenwoordigt een enkele ingebouwde of door de gebruiker gedefinieerde stijl — de benoemde collectie van alinea-, lettertype- en lijstopmaak die Word toepast wanneer een alinea of run die stijl krijgt toegewezen. Elk document maakt zijn stijlen beschikbaar via de Document.Styles eigenschap, die een StyleCollection retourneert. Tabelstijlen worden weergegeven door TableStyle, een subklasse van Style die tabelspecifieke opmaak en voor-gebied conditionele opmaak toevoegt via ConditionalStyleCollection.
Stijltypes en identificatie
Elk Style heeft een Type eigenschap van het type StyleType, die één is van Paragraph, Character, Table of List — overeenkomend met de vier soorten stijlen die Word ondersteunt. Ingebouwde stijlen bevatten ook een locale-onafhankelijke StyleIdentifier enum-waarde (bijvoorbeeld waarden die overeenkomen met koppen, nadruk en hyperlink-stijlen) zodat code een ingebouwde stijl kan opzoeken zonder afhankelijk te zijn van de weergavenaam in een bepaalde taal. De menselijk leesbare naam van een stijl is beschikbaar via Style.Name, en Style.Aliases geeft eventuele alternatieve namen terug die Word voor dezelfde stijl herkent. Style.BuiltIn geeft aan of de stijl wordt meegeleverd met Word zelf versus gedefinieerd in het document, en Style.IsHeading geeft aan of de stijl een van de ingebouwde kopstijlen is.
Toegang tot en beheer van de stijlcollectie
StyleCollection is de collectie van alle Style objecten — ingebouwd en aangepast — die aan een document zijn gekoppeld, bereikt via Document.Styles. Haal een stijl op via de weergavenaam met de StyleCollection indexer — styles[name] — of haal een ingebouwde stijl op via de locale-onafhankelijke StyleIdentifier met dezelfde indexer — styles[sti] — wat betrouwbaarder is dan zoeken op naam in documenten die in verschillende talen zijn geschreven. Nieuwe stijlen worden aangemaakt met StyleCollection.Add(type, name), waarbij de StyleType en een naam worden gespecificeerd, en een bestaande stijl kan worden gedupliceerd in de collectie met StyleCollection.AddCopy(style). StyleCollection.Count geeft aan hoeveel stijlen het document bevat, en de collectie biedt ook DefaultFont en DefaultParagraphFormat, die de document-brede standaardopmaak beschrijven die nieuwe inhoud erft voordat een expliciete stijl wordt toegepast. StyleCollection.ClearQuickStyleGallery() verwijdert alle stijlen uit de snelle-stijlgalerij van de Word-UI zonder de stijlen zelf te verwijderen.
Stijlen toepassen op alinea’s en runs
Opmaakobjecten die een stijl kunnen dragen, exposeerden zowel een Style eigenschap (het Style object zelf) als een StyleName eigenschap (een snelkoppeling die een stijl op naam oplost of maakt). ParagraphFormat.Style en ParagraphFormat.StyleName passen een alinea-stijl toe, terwijl Font.Style en Font.StyleName een teken-stijl toepassen op de opmaak van een run. De eigen LinkedStyleName, BaseStyleName en NextParagraphStyleName eigenschappen van een stijl beschrijven hoe deze zich verhoudt tot andere stijlen: BaseStyleName geeft de stijl aan waarvan het ongeconfigureerde opmaak erft, LinkedStyleName geeft een gekoppelde alinea/teken-stijl aan (zoals Word doet voor ingebouwde stijlen zoals Kop 1 en de gekoppelde teken-stijl), en NextParagraphStyleName geeft de stijl aan die Word toewijst aan een nieuwe alinea die wordt getypt na een alinea met deze stijl.
Tabelstijlen en voorwaardelijke opmaak
TableStyle breidt Style uit met tabel-layouteigenschappen zoals Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment en opvulling (LeftPadding, RightPadding, TopPadding, BottomPadding), plus RowStripe en ColumnStripe, die bepalen over hoeveel rijen of kolommen een bandpatroon zich herhaalt. Naast uniforme tabelopmaak geeft TableStyle.ConditionalStyles een ConditionalStyleCollection terug die één ConditionalStyle per tabelregio bevat — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, en de vier hoekcellen (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Elke ConditionalStyle heeft zijn eigen Font, ParagraphFormat, Shading, Borders en cel-opvulling, en de Type eigenschap geeft aan welke ConditionalStyleType regio hij vertegenwoordigt. ConditionalStyle.ClearFormatting() en ConditionalStyleCollection.ClearFormatting() resetten de opmaak voor één regio of de hele set van voorwaardelijke regio’s.
Stijlmetadata en gedragsvlaggen
Verschillende booleaanse en numerieke eigenschappen van Style bepalen hoe Word een stijl in de UI behandelt in plaats van hoe deze wordt gerenderd: Locked voorkomt dat de stijl wordt gewijzigd wanneer opmaakbeveiliging actief is, IsQuickStyle bepaalt of deze verschijnt in de snelle-stijlgalerij, AutomaticallyUpdate laat de stijl zichzelf opnieuw definiëren op basis van handmatig toegepaste directe opmaak, SemiHidden en UnhideWhenUsed regelen de zichtbaarheid in de stijllijst vóór en na het eerste gebruik, en Priority beïnvloedt de sorteer-volgorde in de galerij. Een stijl exposeert ook List en ListFormat eigenschappen wanneer ze lijstnummering definieert, en Style.Remove() verwijdert de stijl uit zijn StyleCollection.
Tips en best practices
- Geef de voorkeur aan de
StyleCollectionindexer met eenStyleIdentifierwaarde boven het opzoeken op naam bij het vinden van een ingebouwde stijl — namen zijn gelokaliseerd, maarStyleIdentifierwaarden zijn dat niet. - Stel
BaseStyleNamein om stijlhiërarchieën op te bouwen (bijvoorbeeld een reeks kopstijlen die allemaal lettertypekeuzes van één basisstijl overnemen) in plaats van de opmaak op elke stijl te herhalen. - Gebruik
StyleCollection.AddCopy(style)bij het kopiëren van een stijl tussen documenten in plaats van handmatig elke opmaak-eigenschap te lezen en opnieuw toe te passen. - Configureer
TableStyle.ConditionalStyles-regio’s voor gegroepeerde tabellen in plaats van handmatig afwisselende rijen in code op te maken — de opmaak van elkeConditionalStyle-regio wordt toegepast op basis van zijnConditionalStyleType, in plaats van directe opmaak in te stellen op individuele rijen. - Controleer
Style.BuiltInvoordat je een stijl programmatisch verwijdert of hernoemt; ingebouwde stijlen worden meestal elders in het document op naam aangehaald.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
StyleCollection indexer retourneert null voor een naamopzoeking | De stijlnaam bestaat niet in dit document, of een ingebouwde stijl is nog niet gebruikt, waardoor Word deze nog niet heeft gematerialiseerd. | Controleer Style.Aliases op alternatieve namen, of gebruik de StyleCollection indexer met een StyleIdentifier voor ingebouwde stijlen in plaats daarvan |
Het instellen van StyleName maakt onverwacht een nieuwe stijl aan | StyleName maakt de benoemde stijl aan als deze nog niet bestaat in de collectie | Gebruik eerst de StyleCollection indexer om te bevestigen dat de stijl bestaat, of wijs het Style object direct toe via de Style eigenschap |
Tabelbanding verschijnt niet na het toepassen van een TableStyle | De voorwaardelijke opmaakregio’s (OddRowBanding, EvenRowBanding, enzovoort) waren nooit geconfigureerd op TableStyle.ConditionalStyles | Stel de opmaak in voor de relevante ConditionalStyle items in ConditionalStyleCollection |
| Een stijtaanpassing heeft geen invloed op inhoud die de stijl al gebruikt | Directe (handmatige) opmaak is toegepast bovenop de stijl en heeft voorrang | Verwijder de directe opmaak op de betreffende runs/paragrafen, of stel Style.AutomaticallyUpdate in |
FAQ
Hoe krijg ik de verzameling van alle stijlen in een document?
Lees Document.Styles, dat een StyleCollection retourneert met alle ingebouwde en door de gebruiker gedefinieerde Style in dat document.
Wat is het verschil tussen Style en StyleIdentifier?
Style is het daadwerkelijke stijlobject met zijn opmaak; StyleIdentifier is een locale-onafhankelijke enumwaarde die wordt gebruikt om een specifieke ingebouwde stijl op te zoeken, ongeacht de taal van het document, via de StyleCollection indexeerder.
Hoe verschillen tabelstijlen van alinea- of tekenstijlen?
TableStyle is een subclass van Style die tabel-layout-eigenschappen toevoegt (Alignment, CellSpacing, padding) en een ConditionalStyles collectie voor regiogebonden opmaak zoals gerijmde rijen, koprijen en hoekcellen — opmaakconcepten die niet van toepassing zijn op alinea- of tekenstijlen.
Kan ik een gloednieuwe stijl maken in plaats van een bestaande te wijzigen?
Ja — roep StyleCollection.Add(type, name) aan met de gewenste StyleType en een nieuwe naam om een lege stijl te maken, stel vervolgens de opmaak-eigenschappen in (Font, ParagraphFormat, enzovoort voor alinea-/tekenstijlen).
Hoe dupliceer ik een stijl, inclusief vanuit een ander document?
Gebruik StyleCollection.AddCopy(style), geef een Style object door (dat afkomstig kan zijn van een andere Document’s StyleCollection) om een kopie ervan toe te voegen aan de doelcollectie.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Style | Een enkele ingebouwde of door de gebruiker gedefinieerde alinea-, teken-, tabel- of lijststijl |
StyleCollection | De verzameling van alle stijlen in een document, bereikbaar via Document.Styles |
StyleCollection indexer op naam | Zoek een stijl op basis van de weergavenaam, bijv. styles["Heading 1"] |
StyleCollection indexer op identifier | Zoek een ingebouwde stijl op basis van een locale-onafhankelijke identifier, bijv. styles[StyleIdentifier.Heading1] |
StyleCollection.Add(type, name) | Maak een nieuwe, lege stijl van de gegeven StyleType |
StyleCollection.AddCopy(style) | Kopieer een bestaande stijl naar deze collectie |
StyleType | Enum die de stijlen Paragraph, Character, Table en List onderscheidt |
StyleIdentifier | Locale-onafhankelijke identifier voor een ingebouwde stijl |
TableStyle | Een Style subclass voor tabelopmaak, inclusief voorwaardelijke per-regio styling |
ConditionalStyleCollection | De verzameling van per-regio ConditionalStyle items op een TableStyle |
ConditionalStyle | Opmaak (lettertype, alinea-opmaak, schaduw, randen, opvulling) voor één tabelregio |
ConditionalStyleType | Enum die aangeeft op welke tabelregio een ConditionalStyle van toepassing is |