Обрамлення та затінення

Обрамлення та затінення

Обрамлення та затінення

Форматування обрамлення та затінення в 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/Bottom Border) — найшвидший спосіб застосувати однакові межі до всіх боків.
  • Пам’ятайте, що LineStyle.None видаляє видиму лінію, не стираючи інші налаштовані ширину або колір межі — використайте ClearFormatting() для повного скидання.
  • Межі клітинок таблиці та абзаців є незалежними екземплярами BorderCollection; встановлення одного не впливає на інший.

Поширені проблеми

ПроблемаПричинаВиправлення
Рамка не видима після встановлення ColorLineStyle залишено на 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Перелічення текстур шаблонів затінення

Дивіться також

 Українська