Bordi e sfumature
Bordi e ombreggiatura
La formattazione dei bordi e dell’ombreggiatura in Aspose.Words FOSS per .NET è modellata da due classi di attributi correlate: Border, che descrive una singola linea di bordo, e Shading, che descrive un modello di riempimento di sfondo. Paragrafi, tabelle, celle e caratteri espongono ciascuno un BorderCollection (più lati Border) e un unico oggetto Shading attraverso le rispettive proprietà di formattazione.
Lavorare con i bordi individuali
Un oggetto Border rappresenta una linea di bordo e espone LineStyle (un valore enum da LineStyle, come Single, Double, Dot o Wave), LineWidth, Color, DistanceFromText, Shadow e le proprietà ThemeColor/TintAndShade sensibili al tema. Chiama ClearFormatting() su un Border per ripristinarlo allo stato predefinito (senza bordo).
BorderCollection raggruppa più oggetti Border per i lati di un oggetto. Espone proprietà nominate per i quattro bordi — Left, Right, Top, Bottom — oltre a Horizontal e Vertical per i bordi interni della tabella. L’indicizzatore BorderCollection recupera un lato specifico usando un valore enum BorderType (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp o None) come chiave. Impostare LineWidth, LineStyle o Color direttamente sulla collezione applica quel valore a tutti i bordi contenuti contemporaneamente; ClearFormatting() cancella tutti i bordi nella collezione insieme.
Applicare l’ombreggiatura
Shading contiene il modello di sfondo per un oggetto: BackgroundPatternColor e ForegroundPatternColor definiscono i due colori del modello, e Texture (un valore enum TextureIndex) seleziona il modello — i riempimenti solidi usano TextureIndex.TextureSolid, mentre i modelli percentuali e direzionali (Texture10Percent fino a Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross e altri) riproducono la galleria di ombreggiatura di Word. ForegroundPatternThemeColor e BackgroundPatternThemeColor forniscono equivalenti di colore del tema, insieme alla regolazione tinta/ombreggiatura tramite ForegroundTintAndShade e BackgroundTintAndShade. ClearFormatting() ripristina un oggetto Shading a nessun riempimento.
Suggerimenti e migliori pratiche
- Imposta
TextureaTextureIndex.TextureSolide usaBackgroundPatternColorper una riempitura di sfondo semplice — il caso di ombreggiatura più comune. - Utilizza l’indicizzatore
BorderCollection(borders[BorderType.Horizontal]/borders[BorderType.Vertical]) per raggiungere le linee di griglia interne di una tabella, che non sono esposte come proprietà nominate. - Impostare le proprietà direttamente su un
BorderCollection(piuttosto che su un singoloLeft/Right/Top/BottomBorder) è il modo più veloce per applicare bordi uniformi a tutti i lati. - Ricorda che
LineStyle.Nonerimuove la linea visibile senza cancellare il resto della larghezza o del colore del bordo configurati — usaClearFormatting()per un reset completo. - I bordi delle celle della tabella e dei paragrafi sono istanze
BorderCollectionindipendenti; impostarne uno non influisce sull’altro.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
Bordo non visibile dopo aver impostato Color | LineStyle lasciato a LineStyle.None | Imposta LineStyle su uno stile visibile come Single prima di salvare |
| L’ombreggiatura appare come riempimento solido quando ci si aspettava un motivo | Texture lasciato al valore predefinito | Imposta esplicitamente Texture al costante di pattern desiderato |
| I bordi interni della tabella non sono influenzati dalle modifiche ai bordi esterni | Horizontal/Vertical sono separati da Left/Right/Top/Bottom | Imposta BorderCollection.Horizontal e .Vertical esplicitamente |
L’indicizzatore BorderCollection restituisce un bordo inaspettato | Valore BorderType errato fornito | Conferma che il valore enum BorderType corrisponda al lato previsto |
FAQ
Come posso applicare lo stesso bordo a tutti e quattro i lati di una cella di tabella?
Imposta LineStyle, LineWidth e Color direttamente sul BorderCollection della cella anziché su ciascuno di Left, Right, Top e Bottom individualmente — i setter a livello di raccolta si applicano a tutti i bordi che contiene.
Qual è la differenza tra Border e Shading?
Border descrive una linea (stile, larghezza, colore) disegnata lungo un bordo; Shading descrive un motivo di riempimento di sfondo dietro il contenuto. Sono indipendenti — un oggetto può avere l’ombreggiatura senza bordi, o bordi senza ombreggiatura.
Quale enum controlla il modello di linea visiva di un bordo?
LineStyle, con valori come Single, Double, Dot, DashSmallGap e Wave.
Posso rimuovere completamente un bordo?
Sì — chiama ClearFormatting() sul Border o BorderCollection, oppure imposta LineStyle su LineStyle.None.
API Reference Riepilogo
| Classe / Metodo | Descrizione |
|---|---|
Border | Una singola linea di bordo: stile, larghezza, colore, ombra |
BorderCollection | L’insieme dei bordi (Left, Right, Top, Bottom, Horizontal, Vertical) per un oggetto |
BorderType | Enum che identifica un lato del bordo |
LineStyle | Enum di stili di linea visivi (Single, Double, Dot, ecc.) |
Shading | Riempimento del motivo di sfondo: colori e Texture |
TextureIndex | Enum dei pattern di texture di ombreggiatura |