Hoe te werken met stijlen in .NET

Hoe te werken met stijlen in .NET

Deze gids laat zien hoe je alinea-, teken-, tabel- en lijststijlen kunt opzoeken, toepassen en maken in Aspose.Words FOSS voor .NET, gebruikmakend van de Style, StyleCollection, en TableStyle classes. Het behandelt het lezen van de stijlcollectie van een document, het betrouwbaar opzoeken van stijlen in verschillende talen, het toepassen van stijlen op alinea’s en runs, het maken en kopiëren van stijlen, en het configureren van per-regio voorwaardelijke opmaak op tabelstijlen.

Stap-voor-stap gids

Stap 1: Installeer het pakket

Aspose.Words FOSS voor .NET publiceert nog geen NuGet pakket – bouw de bibliotheek in plaats daarvan vanuit de bron. Clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, bouw daarna Aspose.Words.sln in Release-configuratie met de .NET SDK en verwijs naar de resulterende Aspose.Words assembly vanuit je project. De bibliotheek richt zich op .NET Standard 2.0, dus draait hij op .NET Framework 4.6.2+ en .NET 6/8/10.


Stap 2: Importeer vereiste klassen

Voeg een using Aspose.Words; directive toe – Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection en ConditionalStyleType bevinden zich allemaal in de Aspose.Words namespace naast Document.


Stap 3: Lees de stijlverzameling van een document

Document.Styles retourneert een StyleCollection – elke ingebouwde en door de gebruiker gedefinieerde Style die aan het document is gekoppeld. StyleCollection.Count meldt hoeveel stijlen het bevat, en DefaultFont / DefaultParagraphFormat beschrijven de documentbrede standaardopmaak die nieuwe inhoud erft voordat een expliciete stijl wordt toegepast.


Stap 4: Zoek een stijl betrouwbaar op

Haal een stijl op via de weergavenaam met behulp van de StyleCollection indexeerder, styles[name]. Voor ingebouwde stijlen geef de voorkeur aan dezelfde indexeerder met een StyleIdentifier enum-waarde – styles[sti] – namen zijn gelokaliseerd, maar StyleIdentifier waarden niet, dus opzoeken op identifier werkt op dezelfde manier, ongeacht de taal van het document. Controleer Style.Aliases voor alternatieve namen die Word herkent voor dezelfde stijl als de indexeerder niet vindt wat u verwacht, en controleer Style.BuiltIn voordat u een stijl programmatisch verwijdert of hernoemt, aangezien ingebouwde stijlen vaak elders in het document bij naam worden gerefereerd.


Stap 5: Pas een stijl toe op alinea’s of runs

Formatteringsobjecten die een stijl dragen, bieden zowel een Style eigenschap (het Style object zelf) als een StyleName eigenschap (een snelkoppeling die een stijl op naam oplost of maakt). Stel ParagraphFormat.Style of ParagraphFormat.StyleName in om een alinea-stijl toe te passen, en Font.Style of Font.StyleName om een teken-stijl toe te passen op de opmaak van een run. Het toewijzen van StyleName met een naam die nog niet bestaat in de verzameling creëert die stijl – controleer eerst of de stijl bestaat met de StyleCollection indexeerder, of wijs het Style object rechtstreeks toe, als dat niet de beoogde werking is.


Stap 6: Bouw stijlhiërarchieën

Lees BaseStyleName om de stijl te vinden waarvan een gegeven stijl niet-ingestelde opmaak erft, LinkedStyleName voor een gekoppelde alinea/teken-stijl (zoals Word definieert voor ingebouwde stijlen zoals een koptekst en de bijbehorende teken-stijl), en NextParagraphStyleName voor de stijl die Word toewijst aan een nieuwe alinea die wordt getypt na een alinea met deze stijl. Stel BaseStyleName in bij het definiëren van een reeks verwante stijlen – bijvoorbeeld een familie van koptekststijlen die allemaal lettertype-keuzes van één basisstijl moeten erven – in plaats van dezelfde opmaak op elke stijl te herhalen.


Stap 7: Een stijl maken of kopiëren

Roep StyleCollection.Add(type, name) aan met een StyleType (Paragraph, Character, Table of List) en een naam om een nieuwe, lege stijl te maken, stel vervolgens de Font en ParagraphFormat eigenschappen in naar behoefte. Om een bestaande stijl te dupliceren — inclusief een vanuit een andere Document’s StyleCollection — roep StyleCollection.AddCopy(style) aan in plaats van handmatig elke opmaak-eigenschap te lezen en opnieuw toe te passen. Roep Style.Remove() aan om een stijl uit de collectie te verwijderen.


Stap 8: Tabelstijlen en voorwaardelijke opmaak configureren

TableStyle breidt Style uit met tabelindelings-eigenschappen — Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment en de vier opvul-eigenschappen (LeftPadding, RightPadding, TopPadding, BottomPadding) — plus RowStripe en ColumnStripe, die bepalen over hoeveel rijen of kolommen een bandpatroon zich herhaalt. Voor opmaak per regio, configureer TableStyle.ConditionalStyles — een ConditionalStyleCollection die één ConditionalStyle per regio 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 celopvulling, waarbij Type aangeeft welke ConditionalStyleType-regio het vertegenwoordigt; stel de opmaak in voor deze regio’s in plaats van voor individuele tabelrijen om band-, koprij- of hoekcel-opmaak te krijgen die tabelbewerkingen overleeft.


Stap 9: Opmaak resetten of verwijderen

Roep ConditionalStyle.ClearFormatting() aan om één voorwaardelijke regio te resetten, of ConditionalStyleCollection.ClearFormatting() om alle regio’s op een TableStyle in één keer te resetten. StyleCollection.ClearQuickStyleGallery() verwijdert elke stijl uit de snel-stijlgallerij van de Word-UI zonder de stijlen zelf te verwijderen — handig om de galerij te verkleinen zonder de documentinhoud aan te raken.

Veelvoorkomende problemen en oplossingen

StyleCollection indexer geeft null terug voor een naamopzoeking De stijlnaam bestaat niet in dit document, of een ingebouwde stijl is nog niet gebruikt, waardoor Word deze niet heeft gematerialiseerd. Controleer Style.Aliases voor alternatieve namen, of gebruik de StyleCollection indexer met een StyleIdentifier voor ingebouwde stijlen in plaats daarvan.

Instelling StyleName maakt onverwacht een nieuwe stijl aan StyleName maakt de benoemde stijl aan als deze nog niet bestaat in de collectie. Gebruik de StyleCollection indexer eerst om te bevestigen dat de stijl bestaat, of wijs de Style object rechtstreeks via de Style eigenschap in plaats van StyleName.

Tabelbanding verschijnt niet na het toepassen van een TableStyle De voorwaardelijke opmaakgebieden – OddRowBanding, EvenRowBanding, en soortgelijke – waren nooit geconfigureerd op TableStyle.ConditionalStyles. Stel opmaak in op de relevante ConditionalStyle items in ConditionalStyleCollection.

Een stijlwijziging heeft geen invloed op inhoud die de stijl al gebruikt Directe (handmatige) opmaak die bovenop de stijl wordt toegepast, heeft voorrang op de eigen instellingen van de stijl. Verwijder directe opmaak op de getroffen runs of alinea’s, of stel Style.AutomaticallyUpdate zodat de stijl zichzelf herdefinieert vanuit die handmatige opmaak.

Een ingebouwde stijlopzoeking faalt in een document dat in een andere taal is opgesteld De StyleCollection indexer komt overeen met de weergavenaam, die gelokaliseerd is, wanneer aangeroepen met een naam. Gebruik dezelfde indexer met de overeenkomstige StyleIdentifier enum-waarde in plaats daarvan, aangezien die identifier locale-onafhankelijk is.

Veelgestelde vragen

Hoe krijg ik de collectie van alle stijlen in een document?

Lees Document.Styles, die 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 style-object met zijn opmaak; StyleIdentifier is een locale-onafhankelijke enum-waarde die wordt gebruikt om een specifieke ingebouwde style op te zoeken, ongeacht de taal van het document, via de StyleCollection indexer.

Hoe verschillen tabelstijlen van alinea- of tekenstijlen?

TableStyle is een subklasse van Style die tabel-layout-eigenschappen (Alignment, CellSpacing, padding) en een ConditionalStyles collectie toevoegt voor regiogebonden opmaak, zoals geribbelde rijen, koprijen en hoekcellen – opmaakconcepten die niet van toepassing zijn op alinea- of tekenstijlen.

Kan ik een volledig nieuwe style aanmaken 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 style te maken, stel vervolgens de opmaak-eigenschappen in (Font, ParagraphFormat, enzovoort voor alinea- of tekenstijlen).

Hoe dupliceer ik een style, inclusief vanuit een ander document?

Roep StyleCollection.AddCopy(style) aan, waarbij je een Style-object doorgeeft – dat kan komen van de StyleCollection van een andere Document – om een kopie ervan toe te voegen aan de doelcollectie.

Zie ook

 Nederlands