Bordes y sombreado
Bordes y sombreado
El formato de bordes y sombreado en Aspose.Words FOSS para .NET se modela mediante dos clases de atributos relacionadas: Border, que describe una única línea de borde, y Shading, que describe un patrón de relleno de fondo. Los párrafos, tablas, celdas y fuentes exponen cada uno un BorderCollection (múltiples lados Border) y un único objeto Shading a través de sus respectivas propiedades de formato.
Trabajar con bordes individuales
Un objeto Border representa una línea de borde y expone LineStyle (un valor enum de LineStyle, como Single, Double, Dot o Wave), LineWidth, Color, DistanceFromText, Shadow y propiedades ThemeColor/TintAndShade sensibles al tema. Llama a ClearFormatting() en un Border para restablecerlo a su estado predeterminado (sin borde).
BorderCollection agrupa varios objetos Border para los lados de un objeto. Expone propiedades con nombre para los cuatro bordes — Left, Right, Top, Bottom — además de Horizontal y Vertical para los bordes internos de la tabla. El indexador BorderCollection recupera un lado específico usando un valor enum BorderType (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp o None) como clave. Asignar LineWidth, LineStyle o Color directamente a la colección aplica ese valor a todos los bordes que contiene de una vez; ClearFormatting() elimina todos los bordes de la colección simultáneamente.
Aplicando sombreado
Shading lleva el patrón de fondo para un objeto: BackgroundPatternColor y ForegroundPatternColor definen los dos colores del patrón, y Texture (un valor enum TextureIndex) selecciona el patrón — los rellenos sólidos usan TextureIndex.TextureSolid, mientras que los patrones de porcentaje y direccionales (Texture10Percent a Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross y otros) reproducen la galería de sombreado de Word. ForegroundPatternThemeColor y BackgroundPatternThemeColor proporcionan equivalentes de color de tema, junto con el ajuste de tono/oscurecimiento mediante ForegroundTintAndShade y BackgroundTintAndShade. ClearFormatting() restablece un objeto Shading a sin relleno.
Consejos y Mejores Prácticas
- Establezca
TextureaTextureIndex.TextureSolidy useBackgroundPatternColorpara un relleno de fondo liso — el caso de sombreado más común. - Utilice el indexador
BorderCollection(borders[BorderType.Horizontal]/borders[BorderType.Vertical]) para acceder a las líneas de cuadrícula interiores de una tabla, que no se exponen como propiedades con nombre. - Establecer propiedades directamente en un
BorderCollection(en lugar de en unLeft/Right/Top/BottomBorderindividual) es la forma más rápida de aplicar bordes uniformes a todos los lados. - Recuerde que
LineStyle.Noneelimina la línea visible sin borrar el resto del ancho o color configurado del borde — useClearFormatting()para un reinicio completo. - Los bordes de celdas de tabla y de párrafo son instancias
BorderCollectionindependientes; establecer uno no afecta al otro.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
Borde no visible después de configurar Color | LineStyle dejado en LineStyle.None | Establezca LineStyle a un estilo visible como Single antes de guardar |
| El sombreado aparece como un relleno sólido cuando se esperaba un patrón | Texture dejado en su valor predeterminado | Establezca explícitamente Texture al constante de patrón deseado |
| Los bordes interiores de la tabla no se ven afectados por los cambios en los bordes externos | Horizontal/Vertical están separados de Left/Right/Top/Bottom | Establezca BorderCollection.Horizontal y .Vertical explícitamente |
El indexador BorderCollection devuelve un borde inesperado | Se pasó un valor BorderType incorrecto | Confirme que el valor enum BorderType coincide con el lado previsto |
FAQ
¿Cómo aplico el mismo borde a los cuatro lados de una celda de tabla?
Establezca LineStyle, LineWidth y Color directamente en el BorderCollection de la celda en lugar de en cada uno de Left, Right, Top y Bottom individualmente — los establecedores a nivel de colección se aplican a cada borde que contiene.
¿Cuál es la diferencia entre Border y Shading?
Border describe una línea (estilo, ancho, color) dibujada a lo largo de un borde; Shading describe un patrón de relleno de fondo detrás del contenido. Son independientes — un objeto puede tener sombreado sin bordes, o bordes sin sombreado.
¿Qué enum controla el patrón de línea visual de un borde?
LineStyle, con valores como Single, Double, Dot, DashSmallGap y Wave.
¿Puedo eliminar un borde por completo?
Sí — llame a ClearFormatting() en el Border o BorderCollection, o establezca LineStyle a LineStyle.None.
API Reference Resumen
| Clase / Método | Descripción |
|---|---|
Border | Una sola línea de borde: estilo, ancho, color, sombra |
BorderCollection | El conjunto de bordes (Left, Right, Top, Bottom, Horizontal, Vertical) para un objeto |
BorderType | Enum que identifica un lado del borde |
LineStyle | Enum de estilos de línea visual (Single, Double, Dot, etc.) |
Shading | Relleno de patrón de fondo: colores y Texture |
TextureIndex | Enum de texturas de patrón de sombreado |