ReportViewer for ASP.NET Web Forms
スタイルの継承 - Parent と AmbientParent
C1PrintDocument の使い方 > スタイル > スタイルの継承 - Parent と AmbientParent

スタイルが適用されるオブジェクトの外観に影響するすべてのスタイルプロパティ(Font、BackColor など)は、設定されているか設定されていないかのいずれかの状態です。最初、新しく作成されたスタイルのプロパティはどれも設定されていません。これらの値を参照することはできますが、継承を通して別のスタイルまたはオブジェクトから取得されます(下記を参照)。ただし、プロパティが設定されている場合、その設定値はスタイル自体に保存され、継承を通して他のスタイルの影響を受けることはなくなります。

スタイルには、スタイルの継承をサポートする2つの特別なプロパティ ParentAmbientParent があります。Parent プロパティは、現在のスタイルに設定されていない非アンビエントプロパティの値を提供するスタイルを取得または設定します。AmbientParent プロパティは、現在のスタイルに設定されていないアンビエントプロパティの値を提供するスタイルを取得または設定します。デフォルトでは、新しく作成されたインラインスタイルの親はどちらも空(C# の場合は null 値、VB の場合は Nothing)ですが、スタイルの Children コレクションに作成されたスタイルの場合、Parent はそのコレクションを保持するスタイルに設定され、AmbientParent は空になります。

スタイルの Parent が指定されていない場合、非アンビエントプロパティの値は、静的なデフォルトから取得されます(下の「テーブル」を参照)。スタイルの AmbientParent が指定されていない場合、アンビエントプロパティの値は、現在のスタイルが適用されるオブジェクトを保持するオブジェクトから取得されます。

たとえば、RenderTextrt がRenderArea ra に含まれている場合は、次の規則に基づいて、テキストのレンダリングに使用されるフォントが取得されます。

同じ例を使用すると、次の規則に基づいて、RenderText オブジェクトの BackgroundImage が取得されます。

デフォルトでは、スタイルの Children コレクションに含まれるスタイルの Parent は、その Children コレクションの所有者であるスタイルに設定されていますが、これは変更できることに注意してください。たとえば、Children コレクションに含まれる1つのスタイルの親を同じコレクション内の別のスタイルに設定することもできます。Children コレクションは、関連するスタイルのグループ化や保存に便利な場所を提供するだけで、実際にスタイルの階層には何も制限が適用されません。