Reports for WinForms
テーブル内のスタイル
C1PrintDocument の使い方 > テーブル > テーブル内のスタイル

テーブルのセル、列、および行は表示オブジェクトではありませんが(これらは、RenderObject クラスから派生しません)、表示オブジェクトのプロパティに類似したいくつかのプロパティを備えています。特に、すべてに Style プロパティが用意されています。

スタイルの操作は、対応する要素とそのすべてのコンテンツに影響を与えます。行のスタイルの設定は、その行内のすべてのセルに影響を与えます。列のスタイルの設定は、その列内のすべてのセルに影響を与えます。行と列の交点にあるセルのスタイルは、行と列に指定されたスタイルの組み合わせになります。行と列の両方に同じスタイルプロパティが設定されている場合、列が優先します。

さらに、グループ(行のグループ、列のグループ、およびユーザーのセルグループ)のすべてが独自のスタイルを持ち、セル内のデータの表示とテーブルの行と列の表示にも影響を与えます。

以下のルールは、テーブル内のスタイルのアプリケーションを制御します。

アンビエントスタイルプロパティは、「幾何学的な」包含に基づいて、テーブル要素(テーブル全体、行と列のグループ、セルのグループ、個別の行とセル、および個別のセル)を下方に伝播します。この動作は、アンビエントスタイルプロパティがテーブルの外部にある表示オブジェクトの包含を下方に伝播する方法に似ています。

アンビエントスタイルプロパティは、セルのコンテナの要素に影響を与えることなく、これらのコンテンツに影響を与えます。たとえば、テーブル全体のスタイルにフォントを設定すると、下位レベルにフォントが明示的に設定されていないかぎり、そのテーブル内のすべてのテキストに影響を与えます。同様に、そのテーブル内の行のスタイルにフォントを設定すると、その行内のすべてのセルに影響を与えます。

関連する複数のテーブル要素で特定のアンビエントプロパティを変更する場合、以下の優先順位が使用して、セルの表示に使用するプロパティの実効値が計算されます。

上記にリストしたテーブル要素のスタイルに設定された非アンビエントプロパティ(テーブル全体、行、列とセルのグループ、行、列とセル)は、これらの要素(テーブル全体を除き)が表示オブジェクトでない場合でも、セルのコンテンツに影響を与えることなく、これらの要素そのものに適用されます。たとえば、テーブル内の行の周囲に枠線を表示するには、行の Style.Borders を希望する値に設定します。

テーブル内のすべてのセルに非アンビエントプロパティを設定するには、RenderTable.CellStyle を使用します。スタイルが指定されると、そのスタイルはセル内の表示オブジェクトのスタイルの親として有効に使用されます。

また、CellStyle プロパティが行、列、およびテーブル要素のグループに対して定義され、指定された場合、これらのスタイルのすべてがセル内のオブジェクトの非アンビエントプロパティに影響を与えます。たとえば、テーブル内のすべてのセルの背景画像を設定するには、テーブルの CellStyle.BackgroundImage を設定します。この操作は、テーブル内のすべてのセルの画像を繰り返す他、同じ画像をテーブルの Style.BackgroundImage に割り当てることで、その画像をテーブル全体の背景とします(相違は、それぞれの場合の画像を引き伸ばせば明らかになります)。