边框和底纹
边框和底纹
在 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/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 描述内容后面的背景填充图案。它们是相互独立的——对象可以只有底纹而没有边框,或者只有边框而没有底纹。
哪个枚举控制边框的视觉线条模式?
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 | 阴影图案纹理枚举 |