Обрамлення та затінення
Обрамлення та затінення
Форматування обрамлення та затінення в Aspose.Words FOSS для .NET моделюється двома пов’язаними класами атрибутів: Border, який описує одну лінію обрамлення, і Shading, який описує шаблон заповнення фону. Абзаци, таблиці, клітини та шрифти кожен надає BorderCollection (кілька Border сторін) та окремий об’єкт Shading через їх відповідні властивості форматування.
Робота з окремими обрамленнями
Border об’єкт представляє одну лінію обрамлення і надає LineStyle (значення enum з LineStyle, наприклад Single, Double, Dot або Wave), LineWidth, Color, DistanceFromText, Shadow та властивості, що враховують тему, ThemeColor/TintAndShade. Викличте ClearFormatting() на Border, щоб скинути його до типового стану (без обрамлення).
BorderCollection групує кілька об’єктів Border для сторін об’єкта. Він надає іменовані властивості для чотирьох країв — Left, Right, Top, Bottom — а також Horizontal і Vertical для внутрішніх меж таблиці. Індексатор BorderCollection отримує конкретну сторону, використовуючи значення enum BorderType (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp або None) як ключ. Встановлення LineWidth, LineStyle або Color безпосередньо в колекції застосовує це значення до всіх меж, які вона містить, одночасно; ClearFormatting() очищає всі межі в колекції разом.
Застосування затінення
Shading містить шаблон фону для об’єкта: BackgroundPatternColor та ForegroundPatternColor визначають два кольори шаблону, а Texture (значення enum TextureIndex) вибирає шаблон — суцільні заповнення використовують TextureIndex.TextureSolid, тоді як відсоткові та напрямкові шаблони (Texture10Percent-Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross та інші) відтворюють галерею затінення Word. ForegroundPatternThemeColor і BackgroundPatternThemeColor надають еквіваленти кольорів теми, разом з регулюванням відтінку/тіні за допомогою ForegroundTintAndShade та BackgroundTintAndShade. ClearFormatting() скидає об’єкт Shading до стану без заповнення.
Поради та кращі практики
- Встановіть
TextureуTextureIndex.TextureSolidі використайтеBackgroundPatternColorдля простого заповнення фону — найпоширеніший випадок затінення. - Використовуйте індексатор
BorderCollection(borders[BorderType.Horizontal]/borders[BorderType.Vertical]), щоб дістатися до внутрішніх ліній сітки таблиці, які не доступні як іменовані властивості. - Встановлення властивостей безпосередньо на
BorderCollection(а не на окремихLeft/Right/Top/BottomBorder) — найшвидший спосіб застосувати однакові межі до всіх боків. - Пам’ятайте, що
LineStyle.Noneвидаляє видиму лінію, не стираючи інші налаштовані ширину або колір межі — використайтеClearFormatting()для повного скидання. - Межі клітинок таблиці та абзаців є незалежними екземплярами
BorderCollection; встановлення одного не впливає на інший.
Поширені проблеми
| Проблема | Причина | Виправлення |
|---|---|---|
Рамка не видима після встановлення Color | LineStyle залишено на LineStyle.None | Встановіть LineStyle у видимий стиль, наприклад Single, перед збереженням |
| Затінення виглядає як суцільна заливка, коли очікувався візерунок | Texture залишено за замовчуванням | Явно встановіть Texture у потрібну константу шаблону |
| Внутрішні межі таблиці не змінюються при зміні зовнішньої межі | Horizontal/Vertical окремі від Left/Right/Top/Bottom | Встановити BorderCollection.Horizontal і .Vertical явно |
Індексатор BorderCollection повертає неочікувану межу | Передано неправильне значення BorderType | Переконайтеся, що значення переліку BorderType відповідає потрібній стороні |
FAQ
Як застосувати одну й ту ж рамку до всіх чотирьох сторін клітинки таблиці?
Встановіть LineStyle, LineWidth та Color безпосередньо у BorderCollection клітинки, а не окремо в кожному з Left, Right, Top та Bottom — встановлювачі на рівні колекції застосовуються до кожної рамки, яку вона містить.
У чому різниця між Border та Shading?
Border описує лінію (стиль, ширина, колір), намальовану вздовж краю; Shading описує шаблон заповнення фону позаду вмісту. Вони незалежні — об’єкт може мати затінення без рамок або рамки без затінення.
Яке enum керує візуальним шаблоном лінії рамки?
LineStyle, зі значеннями, такими як Single, Double, Dot, DashSmallGap та Wave.
Чи можна повністю видалити рамку?
Так — викличте ClearFormatting() на Border або BorderCollection, або встановіть LineStyle у LineStyle.None.
API Reference Підсумок
| Клас / Метод | Опис |
|---|---|
Border | Одинарна лінія межі: стиль, ширина, колір, тінь |
BorderCollection | Набір меж (Left, Right, Top, Bottom, Horizontal, Vertical) для об’єкта |
BorderType | Перелік, що ідентифікує сторону межі |
LineStyle | Перелік візуальних стилів ліній (Single, Double, Dot тощо) |
Shading | Заповнення фону візерунком: кольори та Texture |
TextureIndex | Перелічення текстур шаблонів затінення |