Margini și umbrire
Margini și umbrire
Formatarea de margine și umbrire în Aspose.Words FOSS pentru .NET este modelată prin două clase de atribute înrudite: Border, care descrie o singură linie de margine, și Shading, care descrie un model de umplere de fundal. Paragrafele, tabelele, celulele și fonturile expun fiecare un BorderCollection (multiple Border laturi) și un singur obiect Shading prin proprietățile lor de formatare respective.
Lucrul cu margini individuale
Un obiect Border reprezintă o linie de margine și expune LineStyle (o valoare enum din LineStyle, cum ar fi Single, Double, Dot sau Wave), LineWidth, Color, DistanceFromText, Shadow și proprietăți ThemeColor/TintAndShade sensibile la temă. Apelă ClearFormatting() pe un Border pentru a-l reseta la starea implicită (fără margine).
BorderCollection grupează multiple obiecte Border pentru laturile unui obiect. Expune proprietăți numite pentru cele patru margini — Left, Right, Top, Bottom — plus Horizontal și Vertical pentru marginile interne ale tabelului. Indexatorul BorderCollection recuperează o anumită latură utilizând o valoare enum BorderType (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp sau None) ca cheie. Setarea lui LineWidth, LineStyle sau Color direct pe colecție aplică acea valoare fiecărei margini conținute simultan; ClearFormatting() curăță toate marginile din colecție împreună.
Aplicarea umbririi
Shading conține modelul de fundal pentru un obiect: BackgroundPatternColor și ForegroundPatternColor definesc cele două culori ale modelului, iar Texture (o valoare enum TextureIndex) selectează modelul — umpleri solide folosesc TextureIndex.TextureSolid, în timp ce modelele procentuale și direcționale (Texture10Percent până la Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross și altele) reproduc galeria de umbrire a Word. ForegroundPatternThemeColor și BackgroundPatternThemeColor oferă echivalente de culoare tematică, alături de ajustarea nuanței/umbririi prin ForegroundTintAndShade și BackgroundTintAndShade. ClearFormatting() resetează un obiect Shading la starea fără umplere.
Sfaturi și cele mai bune practici
- Setați
TexturelaTextureIndex.TextureSolidși utilizațiBackgroundPatternColorpentru umplere simplă a fundalului — cel mai comun caz de umbrire. - Utilizați indexatorul
BorderCollection(borders[BorderType.Horizontal]/borders[BorderType.Vertical]) pentru a accesa liniile de rețea interioare ale unui tabel, care nu sunt expuse ca proprietăți numite. - Setarea proprietăților direct pe un
BorderCollection(în loc de pe unLeft/Right/Top/BottomBorderindividual) este cea mai rapidă modalitate de a aplica borduri uniforme pe toate părțile. - Rețineți că
LineStyle.Noneelimină linia vizibilă fără a șterge restul lățimii sau culorii configurate ale bordurii — utilizațiClearFormatting()pentru o resetare completă. - Bordurile celulelor de tabel și ale paragrafelor sunt instanțe independente de
BorderCollection; setarea uneia nu afectează cealaltă.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
Bordura nu este vizibilă după setarea Color | LineStyle lăsat la LineStyle.None | Setați LineStyle la un stil vizibil, cum ar fi Single, înainte de a salva |
| Umbrirea apare ca o umplere solidă când se aștepta un model | Texture lăsat la valoarea implicită | Setați explicit Texture la constanta de model dorită |
| Marginile interioare ale tabelului nu sunt afectate de modificările marginilor exterioare | Horizontal/Vertical sunt separate de Left/Right/Top/Bottom | Setează BorderCollection.Horizontal și .Vertical explicit |
Indexatorul BorderCollection returnează o margine neașteptată | Valoare BorderType incorectă transmisă | Confirmați că valoarea enum BorderType corespunde laturii dorite |
FAQ
Cum aplic aceeași bordură pe toate cele patru părți ale unei celule de tabel?
Setați LineStyle, LineWidth și Color direct pe BorderCollection celulei, în loc să le aplicați individual pe fiecare dintre Left, Right, Top și Bottom — setările la nivel de colecție se aplică fiecărei borduri pe care o conține.
Care este diferența dintre Border și Shading?
Border descrie o linie (stil, lățime, culoare) trasată de-a lungul unei margini; Shading descrie un model de umplere de fundal în spatele conținutului. Sunt independente — un obiect poate avea umbrire fără borduri sau borduri fără umbrire.
Ce enum controlează modelul vizual al liniei unei borduri?
LineStyle, cu valori precum Single, Double, Dot, DashSmallGap și Wave.
Pot elimina complet o bordură?
Da — apelați ClearFormatting() pe Border sau BorderCollection, sau setați LineStyle la LineStyle.None.
API Reference Rezumat
| Clasă / Metodă | Descriere: |
|---|---|
Border | O linie de bordură unică: stil, lățime, culoare, umbră |
BorderCollection | Setul de borduri (Left, Right, Top, Bottom, Horizontal, Vertical) pentru un obiect |
BorderType | Enum care identifică o latură a bordurii |
LineStyle | Enum al stilurilor de linie vizuale (Single, Double, Dot, etc.) |
Shading | Umplere cu model de fundal: culori și Texture |
TextureIndex | Enum al texturilor de model de umbrire |