حاشیهها و سایهزنی
حاشیهها و سایهگذاری
قالببندی حاشیه و سایهگذاری در Aspose.Words FOSS برای .NET توسط دو کلاس ویژگی مرتبط مدلسازی میشود: Border که یک خط حاشیهٔ تک را توصیف میکند، و Shading که یک الگوی پر کردن پسزمینه را توصیف میکند. پاراگرافها، جدولها، سلولها و قلمها هر کدام یک BorderCollection (چندین طرف Border) و یک شیء Shading منفرد را از طریق ویژگیهای قالببندی مربوطه خود ارائه میدهند.
کار با حاشیههای تکتک
یک شیء Border نمایانگر یک خط حاشیه است و LineStyle (یک مقدار enum از LineStyle، مانند Single، Double، Dot یا Wave)، LineWidth، Color، DistanceFromText، Shadow و ویژگیهای ThemeColor/TintAndShade آگاه به تم را در دسترس قرار میدهد. برای بازنشانی آن به حالت پیشفرض (بدون حاشیه) روی یک Border، ClearFormatting() را صدا بزنید.
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 نادرست ارسال شد | تأیید کنید مقدار enum 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 | enum شناساییکنندهٔ سمت حاشیه |
LineStyle | enum از سبکهای خطی بصری (Single, Double, Dot, و غیره) |
Shading | پرکردن الگوی پسزمینه: رنگها و Texture |
TextureIndex | enum بافتهای الگوی سایهدار |