Kanter och skuggning
Kanter och skuggning
Formatering av kant och skuggning i Aspose.Words FOSS för .NET modelleras av två relaterade attributklasser: Border, som beskriver en enskild kantlinje, och Shading, som beskriver ett bakgrundsfyllningsmönster. Stycken, tabeller, celler och teckensnitt exponerar var och en en BorderCollection (flera Border sidor) och ett enda Shading-objekt via sina respektive formaterings-egenskaper.
Arbeta med enskilda kanter
Ett Border-objekt representerar en kantlinje och exponerar LineStyle (ett uppräkningvärde från LineStyle, såsom Single, Double, Dot eller Wave), LineWidth, Color, DistanceFromText, Shadow samt temamedvetna ThemeColor/TintAndShade-egenskaper. Anropa ClearFormatting() på ett Border för att återställa det till dess standard (ingen kant)-tillstånd.
BorderCollection grupperar flera Border-objekt för ett objekts sidor. Det exponerar namngivna egenskaper för de fyra kanterna — Left, Right, Top, Bottom — samt Horizontal och Vertical för interna tabellkanter. BorderCollection-indexeraren hämtar en specifik sida med ett BorderType-enumvärde (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp eller None) som nyckel. Att sätta LineWidth, LineStyle eller Color direkt på samlingen tillämpar det värdet på varje kant den innehåller på en gång; ClearFormatting() rensar alla kanter i samlingen samtidigt.
Applicera skuggning
Shading bär bakgrundsmönstret för ett objekt: BackgroundPatternColor och ForegroundPatternColor definierar de två mönsterfärgerna, och Texture (ett TextureIndex-enumvärde) väljer mönstret — solida fyllningar använder TextureIndex.TextureSolid, medan procent- och riktade mönster (Texture10Percent till Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross och andra) återger Words skuggningsgalleri. ForegroundPatternThemeColor och BackgroundPatternThemeColor ger motsvarande temafärger, tillsammans med nyans/skuggjustering via ForegroundTintAndShade och BackgroundTintAndShade. ClearFormatting() återställer ett Shading-objekt till ingen fyllning.
Tips och bästa praxis
- Ställ in
TexturetillTextureIndex.TextureSolidoch användBackgroundPatternColorför en enkel bakgrundsfyllning — det vanligaste skuggningsfallet. - Använd
BorderCollection-indexeraren (borders[BorderType.Horizontal]/borders[BorderType.Vertical]) för att nå de inre rutnätslinjerna i en tabell, som inte exponeras som namngivna egenskaper. - Att ställa in egenskaper direkt på en
BorderCollection(istället för på en enskildLeft/Right/Top/BottomBorder) är det snabbaste sättet att applicera enhetliga kanter på alla sidor. - Kom ihåg att
LineStyle.Nonetar bort den synliga linjen utan att rensa resten av kantens konfigurerade bredd eller färg — användClearFormatting()för en full återställning. - Tabellceller och styckekanter är oberoende
BorderCollection-instanser; att ställa in den ena påverkar inte den andra.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
Kant syns inte efter att ha ställt in Color | LineStyle lämnades på LineStyle.None | Ställ in LineStyle till en synlig stil, t.ex. Single, innan du sparar |
| Skuggning visas som en solid fyllning när ett mönster förväntades | Texture lämnades på standardvärdet | Ställ explicit Texture till den önskade mönsterkonstanten |
| Inre tabellramar förblir opåverkade av ändringar av kantramar | Horizontal/Vertical är separata från Left/Right/Top/Bottom | Ange BorderCollection.Horizontal och .Vertical explicit |
BorderCollection-indexer returnerar oväntad ram | Fel BorderType-värde har skickats | Bekräfta att BorderType-enumvärdet matchar den avsedda sidan |
FAQ
Hur applicerar jag samma kant på alla fyra sidor av en tabellcell?
Ställ in LineStyle, LineWidth och Color direkt på cellens BorderCollection istället för på var och en av Left, Right, Top och Bottom individuellt — samlingsnivåinställningarna gäller för varje kant den innehåller.
Vad är skillnaden mellan Border och Shading?
Border beskriver en linje (stil, bredd, färg) som ritas längs en kant; Shading beskriver ett bakgrundsfyllningsmönster bakom innehållet. De är oberoende — ett objekt kan ha skuggning utan kanter, eller kanter utan skuggning.
Vilken enum styr det visuella linjemönstret för en kant?
LineStyle, med värden såsom Single, Double, Dot, DashSmallGap och Wave.
Kan jag ta bort en kant helt?
Ja — anropa ClearFormatting() på Border eller BorderCollection, eller sätt LineStyle till LineStyle.None.
API Reference Sammanfattning
| Klass / Metod | Beskrivning |
|---|---|
Border | En enda kantlinje: stil, bredd, färg, skugga |
BorderCollection | Mängden kanter (Left, Right, Top, Bottom, Horizontal, Vertical) för ett objekt |
BorderType | Enum som identifierar en kant |
LineStyle | Enum av visuella linjestilar (Single, Double, Dot, etc.) |
Shading | Bakgrundsmönsterfyllning: färger och Texture |
TextureIndex | Enum för skuggningsmönstertexturer |