边框和底纹

边框和底纹

在 Aspose.Words FOSS for .NET 中的边框和底纹格式化由两个相关的属性类建模:Border,描述单条边框线;以及 Shading,描述背景填充图案。段落、表格、单元格和字体都通过各自的格式属性公开一个 BorderCollection(多个 Border 边)和一个单一的 Shading 对象。


使用单个边框

一个 Border 对象表示一条边框线,并公开 LineStyle(来自 LineStyle 的枚举值,例如 Single、Double、Dot 或 Wave)、LineWidth、Color、DistanceFromText、Shadow,以及主题感知的 ThemeColor/TintAndShade 属性。对 Border 调用 ClearFormatting() 可将其重置为默认(无边框)状态。

BorderCollection 将多个 Border 对象组合在一起,以对应对象的各侧。它公开四条边的命名属性——Left、Right、Top、Bottom——以及用于内部表格边框的 Horizontal 和 Vertical。BorderCollection 索引器使用 BorderType 枚举值(Left、Right、Top、Bottom、Horizontal、Vertical、DiagonalDown、DiagonalUp 或 None)作为键来检索特定的一侧。直接在集合上设置 LineWidth、LineStyle 或 Color 会一次性将该值应用到其包含的所有边框;ClearFormatting() 则一次性清除集合中的所有边框。


应用底纹

Shading 保存对象的背景图案:BackgroundPatternColor 和 ForegroundPatternColor 定义两种图案颜色,Texture(一个 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 实例;设置其中一个不会影响另一个。

常见问题

问题原因修复
设置 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 描述内容后面的背景填充图案。它们是相互独立的——对象可以只有底纹而没有边框,或者只有边框而没有底纹。

哪个枚举控制边框的视觉线条模式?

LineStyle,其取值包括 Single、Double、Dot、DashSmallGap 和 Wave。

我能完全移除边框吗?

可以——在 Border 或 BorderCollection 上调用 ClearFormatting(),或将 LineStyle 设置为 LineStyle.None。


API Reference 摘要

类 / 方法描述
Border单条边框线:样式、宽度、颜色、阴影
BorderCollection对象的边框集合(Left, Right, Top, Bottom, Horizontal, Vertical)
BorderType标识边框侧的枚举
LineStyle视觉线条样式的枚举(Single, Double, Dot,等)
Shading背景图案填充:颜色和 Texture
TextureIndex阴影图案纹理枚举

另请参阅

 中文