FrameworkPropertyMetadata.AffectsParentMeasure プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
レイアウト エンジンの操作中に、依存関係プロパティが親要素のレイアウトのメジャー パスに影響を与える可能性があるかどうかを示す値を取得または設定します。
public:
property bool AffectsParentMeasure { bool get(); void set(bool value); };
public bool AffectsParentMeasure { get; set; }
member this.AffectsParentMeasure : bool with get, set
Public Property AffectsParentMeasure As Boolean
プロパティ値
true このメタデータが存在する依存関係プロパティが、その親要素のメジャー パスに影響する可能性がある場合。それ以外の場合は false。 既定値は、false です。
例外
メタデータがシールされ、メタデータのプロパティを設定できないように、メタデータは既に依存関係プロパティ操作に適用されています。
注釈
FrameworkElement
FrameworkContentElementには、要素に存在するすべての依存関係プロパティに対する有効な値の変更を監視するOnPropertyChangedの実装が含まれています。 そのロジックの一部として、有効な値を変更し、 AffectsParentMeasure が true に設定されたメタデータを持つ依存関係プロパティは、親要素のビジュアルを無効にする遅延要求を開始します。 この WPF フレームワーク レベルの実装は既に実施されているため、WPF フレームワーク レベルのレイアウト動作を大幅に置き換えたり変更したりする場合を除き、通常、 AffectsParentMeasure を使用して依存関係プロパティを検索する必要はありません。
一般に、AffectsParentMeasureを使用してFrameworkElement プロパティの変更を親要素に報告する必要はありません。これは、要素自体にtrueとして独自のAffectsMeasureが既に存在するためです。 子要素の変更は通常、必要に応じて親メジャー パスを開始するため、通常はこれで十分です。
AffectsParentMeasure は、 FrameworkContentElement 派生クラスに使用される場合があります。 この場合、子要素はプロパティを設定しますが、 FrameworkContentElement 派生クラスは独自のレンダリングを制御しません。 レンダリングは、コンテンツ ホストとして機能する FrameworkElement 親要素によって処理されます。 たとえば、子要素によって Paragraph.KeepWithNext プロパティの値を変更すると、段落の相対間隔が変更され、コンテンツ ホスト サイズが増減する可能性があるため、親のメジャーが無効になります。 したがって、 Paragraph.KeepWithNext プロパティには、 AffectsParentMeasure が trueされるメタデータがあります。
コンテンツ ホスト要素は、コンテンツ ホストレンダリングロジックの一部として、 AffectsParentMeasure が trueされている依存関係プロパティの変更を頻繁に検索します。 たとえば、 TextBox 要素は、 TextBox 自体の境界ボックスを変更する必要があるテキスト内の特定の変更に応答する必要があります。
カスタム OnPropertyChanged 実装では、 AffectsParentMeasure が trueされている依存関係プロパティの変更に対して同様の動作を選択する場合があります。
PropertyMetadataの派生クラスのプロパティは、通常、オブジェクト モデルで読み取り/書き込みとして定義されます。 これは、インスタンスの初期化後に調整できるようにするためです。 ただし、メタデータが Register、 AddOwner、または OverrideMetadataの呼び出しの一部として使用されると、プロパティ システムによって、メタデータの詳細を伝えるメタデータ インスタンスとプロパティが不変と見なされるようになります。 このメタデータ インスタンスで IsSealed が true された後にこのプロパティを設定しようとすると、例外が発生します。
XAML テキストの使用法
このクラスのメンバーは、通常、XAML では使用されません。