罫線と網かけ
枠線とシェーディング
Aspose.Words FOSS for .NET における枠線とシェーディングの書式設定は、2つの関連属性クラスでモデル化されています:単一の枠線を表す Border と、背景塗りつぶしパターンを表す Shading。段落、表、セル、フォントはそれぞれの書式プロパティを通じて、BorderCollection(複数の Border 側)と単一の Shading オブジェクトを公開します。
個別枠線の操作
Border オブジェクトは 1 本の枠線を表し、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 が 2 つのパターン色を定義し、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
テーブルセルの四辺すべてに同じ枠線を適用するにはどうすればよいですか?
セルの BorderCollection に直接 LineStyle、LineWidth、Color を設定し、Left、Right、Top、Bottom を個別に設定しないでください — コレクションレベルのセッターは含まれるすべての枠線に適用されます。
Border と Shading の違いは何ですか?
Border はエッジに沿って描かれる線(スタイル、幅、色)を表し、Shading はコンテンツの背後にある背景塗りつぶしパターンを表します。これらは独立しています — オブジェクトは枠線なしでシェーディングを持つことも、シェーディングなしで枠線を持つこともできます。
枠線のビジュアルラインパターンを制御する enum はどれですか?
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 | シェーディングパターンテクスチャの列挙 |