Bordas e Sombras
Bordas e Sombras
A formatação de borda e sombreamento em Aspose.Words FOSS para .NET é modelada por duas classes de atributo relacionadas: Border, que descreve uma única linha de borda, e Shading, que descreve um padrão de preenchimento de fundo. Parágrafos, tabelas, células e fontes cada um expõe um BorderCollection (vários lados Border) e um único objeto Shading através de suas respectivas propriedades de formatação.
Trabalhando com Bordas Individuais
Um objeto Border representa uma linha de borda e expõe LineStyle (um valor enum de LineStyle, como Single, Double, Dot ou Wave), LineWidth, Color, DistanceFromText, Shadow e propriedades ThemeColor/TintAndShade sensíveis ao tema. Chame ClearFormatting() em um Border para redefini-lo ao estado padrão (sem borda).
BorderCollection agrupa vários objetos Border para os lados de um objeto. Ele expõe propriedades nomeadas para as quatro bordas — Left, Right, Top, Bottom — além de Horizontal e Vertical para bordas internas de tabela. O indexador BorderCollection recupera um lado específico usando um valor enum BorderType (Left, Right, Top, Bottom, Horizontal, Vertical, DiagonalDown, DiagonalUp ou None) como chave. Definir LineWidth, LineStyle ou Color diretamente na coleção aplica esse valor a todas as bordas que ela contém de uma vez; ClearFormatting() limpa todas as bordas da coleção simultaneamente.
Aplicando Sombras
Shading contém o padrão de fundo para um objeto: BackgroundPatternColor e ForegroundPatternColor definem as duas cores do padrão, e Texture (um valor enum TextureIndex) seleciona o padrão — preenchimentos sólidos usam TextureIndex.TextureSolid, enquanto padrões de porcentagem e direcionais (Texture10Percent a Texture97Pt5Percent, TextureHorizontal, TextureDiagonalCross e outros) reproduzem a galeria de sombreamento do Word. ForegroundPatternThemeColor e BackgroundPatternThemeColor fornecem equivalentes de cor do tema, juntamente com ajuste de tonalidade/escurecimento via ForegroundTintAndShade e BackgroundTintAndShade. ClearFormatting() redefine um objeto Shading para sem preenchimento.
Dicas e Melhores Práticas
- Defina
TexturecomoTextureIndex.TextureSolide useBackgroundPatternColorpara um preenchimento de fundo simples — o caso de sombreamento mais comum. - Use o indexador
BorderCollection(borders[BorderType.Horizontal]/borders[BorderType.Vertical]) para alcançar as linhas de grade internas de uma tabela, que não são expostas como propriedades nomeadas. - Definir propriedades diretamente em um
BorderCollection(em vez de em umLeft/Right/Top/BottomBorderindividual) é a maneira mais rápida de aplicar bordas uniformes a todos os lados. - Lembre-se de que
LineStyle.Noneremove a linha visível sem limpar o restante da largura ou cor configurada da borda — useClearFormatting()para um reinício completo. - As bordas de células de tabela e de parágrafos são instâncias independentes de
BorderCollection; definir uma não afeta a outra.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
Borda não visível após definir Color | LineStyle deixado em LineStyle.None | Defina LineStyle para um estilo visível, como Single, antes de salvar |
| Sombras aparecem como preenchimento sólido quando se esperava um padrão | Texture deixado em seu padrão | Defina explicitamente Texture para a constante de padrão desejada |
| Bordas internas da tabela não são afetadas por alterações nas bordas externas | Horizontal/Vertical são separados de Left/Right/Top/Bottom | Defina BorderCollection.Horizontal e .Vertical explicitamente |
O indexador BorderCollection retorna uma borda inesperada | Valor incorreto de BorderType passado | Confirme que o valor enum BorderType corresponde ao lado pretendido |
FAQ
Como aplico a mesma borda nos quatro lados de uma célula de tabela?
Defina LineStyle, LineWidth e Color diretamente no BorderCollection da célula, em vez de em cada um dos Left, Right, Top e Bottom individualmente — os definidores ao nível da coleção se aplicam a todas as bordas que ela contém.
Qual é a diferença entre Border e Shading?
Border descreve uma linha (estilo, largura, cor) desenhada ao longo de uma borda; Shading descreve um padrão de preenchimento de fundo atrás do conteúdo. Eles são independentes — um objeto pode ter sombreamento sem bordas, ou bordas sem sombreamento.
Qual enum controla o padrão visual da linha de uma borda?
LineStyle, com valores como Single, Double, Dot, DashSmallGap e Wave.
Posso remover uma borda completamente?
Sim — chame ClearFormatting() no Border ou BorderCollection, ou defina LineStyle como LineStyle.None.
API Reference Resumo
| Classe / Método | Descrição |
|---|---|
Border | Uma única linha de borda: estilo, largura, cor, sombra |
BorderCollection | O conjunto de bordas (Left, Right, Top, Bottom, Horizontal, Vertical) de um objeto |
BorderType | Enum que identifica um lado da borda |
LineStyle | Enum de estilos de linha visual (Single, Double, Dot, etc.) |
Shading | Preenchimento de padrão de fundo: cores e Texture |
TextureIndex | Enum de texturas de padrão de sombreamento |