Obramowania i cieniowanie
Krawędzie i cieniowanie
Formatowanie krawędzi i cieniowania w Aspose.Words FOSS dla .NET jest modelowane przez dwie powiązane klasy atrybutów: Border, która opisuje pojedynczą linię krawędzi, oraz Shading, która opisuje wzór wypełnienia tła. Akapity, tabele, komórki i czcionki udostępniają każdy BorderCollection (wiele Border stron) oraz pojedynczy obiekt Shading poprzez ich odpowiednie właściwości formatowania.
Praca z pojedynczymi krawędziami
Obiekt Border reprezentuje jedną linię krawędzi i udostępnia LineStyle (wartość wyliczeniowa z LineStyle, taką jak Single, Double, Dot lub Wave), LineWidth, Color, DistanceFromText, Shadow oraz właściwości zależne od motywu ThemeColor/TintAndShade. Wywołaj ClearFormatting() na Border, aby przywrócić go do domyślnego stanu (bez krawędzi).
BorderCollection grupuje wiele obiektów Border dla stron obiektu. Udostępnia nazwane właściwości dla czterech krawędzi — Left, Right, Top, Bottom — oraz Horizontal i Vertical dla wewnętrznych krawędzi tabeli. Indeksator BorderCollection pobiera określoną stronę przy użyciu wartości wyliczeniowej BorderType (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp lub None) jako klucza. Ustawienie LineWidth, LineStyle lub Color bezpośrednio na kolekcji powoduje zastosowanie tej wartości do każdej krawędzi, którą zawiera, jednocześnie; ClearFormatting() usuwa wszystkie krawędzie w kolekcji razem.
Stosowanie cieniowania
Shading przenosi wzór tła dla obiektu: BackgroundPatternColor i ForegroundPatternColor definiują dwa kolory wzoru, a Texture (wartość wyliczeniowa TextureIndex) wybiera wzór — jednolite wypełnienia używają TextureIndex.TextureSolid, podczas gdy wzory procentowe i kierunkowe (Texture10Percent do Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross i inne) odtwarzają galerię cieniowania Worda. ForegroundPatternThemeColor i BackgroundPatternThemeColor zapewniają odpowiedniki w kolorach motywu, wraz z regulacją odcienia/przyciemnienia za pomocą ForegroundTintAndShade i BackgroundTintAndShade. ClearFormatting() przywraca obiekt Shading do braku wypełnienia.
Wskazówki i najlepsze praktyki
- Ustaw
TexturenaTextureIndex.TextureSolidi użyjBackgroundPatternColordo jednolitego wypełnienia tła — najczęstszy przypadek cieniowania. - Użyj indeksatora
BorderCollection(borders[BorderType.Horizontal]/borders[BorderType.Vertical]), aby dotrzeć do wewnętrznych linii siatki tabeli, które nie są dostępne jako nazwane właściwości. - Ustawianie właściwości bezpośrednio na
BorderCollection(zamiast na poszczególnymLeft/Right/Top/BottomBorder) jest najszybszym sposobem na zastosowanie jednolitych obramowań we wszystkich stronach. - Pamiętaj, że
LineStyle.Noneusuwa widoczną linię, nie czyszcząc pozostałej skonfigurowanej szerokości lub koloru obramowania — użyjClearFormatting()do pełnego resetu. - Obramowania komórek tabeli i akapitów są niezależnymi instancjami
BorderCollection; ustawienie jednego nie wpływa na drugie.
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
Obramowanie niewidoczne po ustawieniu Color | LineStyle pozostawiono na LineStyle.None | Ustaw LineStyle na widoczny styl, taki jak Single, przed zapisaniem |
| Cieniowanie pojawia się jako jednolite wypełnienie, gdy oczekiwano wzoru | Texture pozostawiono w wartości domyślnej | Jawnie ustaw Texture na pożądany stały wzorzec |
| Wewnętrzne obramowania tabeli nie są zmieniane przez zmiany obramowania krawędzi | Horizontal/Vertical są oddzielne od Left/Right/Top/Bottom | Ustaw BorderCollection.Horizontal i .Vertical jawnie |
Indeksator BorderCollection zwraca nieoczekiwane obramowanie | Przekazano nieprawidłową wartość BorderType | Potwierdź, że wartość wyliczenia BorderType odpowiada zamierzonej stronie |
FAQ
Jak zastosować to samo obramowanie do wszystkich czterech stron komórki tabeli?
Ustaw LineStyle, LineWidth i Color bezpośrednio na BorderCollection komórki, zamiast na każdym z Left, Right, Top i Bottom oddzielnie — ustawienia na poziomie kolekcji mają zastosowanie do każdego obramowania, które ona zawiera.
Jaka jest różnica między Border a Shading?
Border opisuje linię (styl, szerokość, kolor) rysowaną wzdłuż krawędzi; Shading opisuje wzorzec wypełnienia tła za treścią. Są niezależne — obiekt może mieć cieniowanie bez obramowań lub obramowania bez cieniowania.
Który enum kontroluje wzorzec linii wizualnej obramowania?
LineStyle, z wartościami takimi jak Single, Double, Dot, DashSmallGap i Wave.
Czy mogę całkowicie usunąć obramowanie?
Tak — wywołaj ClearFormatting() na Border lub BorderCollection, lub ustaw LineStyle na LineStyle.None.
API Reference Podsumowanie
| Klasa / Metoda | Opis |
|---|---|
Border | Pojedyncza linia obramowania: styl, szerokość, kolor, cień |
BorderCollection | Zestaw obramowań (Left, Right, Top, Bottom, Horizontal, Vertical) dla obiektu |
BorderType | Enum identyfikujący stronę obramowania |
LineStyle | Enum stylów linii wizualnych (Single, Double, Dot, itp.) |
Shading | Wypełnienie tła wzorem: kolory i Texture |
TextureIndex | Enum tekstur wzorów cieniowania |