FrameworkPropertyMetadata.AffectsMeasure プロパティ

定義

レイアウト エンジンの操作中に、依存関係プロパティが測定パスに影響する可能性があるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether a dependency property potentially affects the measure pass during layout engine operations.

public:
 property bool AffectsMeasure { bool get(); void set(bool value); };
public bool AffectsMeasure { get; set; }
member this.AffectsMeasure : bool with get, set
Public Property AffectsMeasure As Boolean

プロパティ値

Boolean

このメタデータが存在する依存関係プロパティが測定パスに影響する可能性がある場合はtrue 。それ以外の場合は falsetrue if the dependency property on which this metadata exists potentially affects the measure pass; otherwise, false. 既定では、 falseです。The default is false.

例外

メタデータがシールされてメタデータのプロパティを設定できないように、メタデータが依存関係プロパティの操作に既に適用されています。The metadata has already been applied to a dependency property operation, so that metadata is sealed and properties of the metadata cannot be set.

次の例では、さまざまな依存関係プロパティフィールドから既定のメタデータを取得し、その中のさまざまな FrameworkPropertyMetadata プロパティの値を照会します。また、情報を使用して、"メタデータブラウザー" を実装するテーブルを設定します。The following example obtains the default metadata from various dependency property fields, queries the value of various FrameworkPropertyMetadata properties on it, and uses the information to populate a table to implement a "metadata browser".

pm = dp.GetMetadata(dp.OwnerType);
pm = dp.GetMetadata(dp.OwnerType)
FrameworkPropertyMetadata fpm = pm as FrameworkPropertyMetadata;
if (fpm!=null) {
    AffectsArrange.Text = (fpm.AffectsArrange) ? "Yes" : "No";
    AffectsMeasure.Text = (fpm.AffectsMeasure) ? "Yes" : "No";
    AffectsRender.Text = (fpm.AffectsRender) ? "Yes" : "No";
    Inherits.Text = (fpm.Inherits) ? "Yes" : "No";
    IsDataBindingAllowed.Text = (fpm.IsDataBindingAllowed) ? "Yes" : "No";
    BindsTwoWayByDefault.Text = (fpm.BindsTwoWayByDefault) ? "Yes" : "No";
}         
Dim fpm As FrameworkPropertyMetadata = TryCast(pm, FrameworkPropertyMetadata)
If fpm IsNot Nothing Then
    AffectsArrange.Text = If((fpm.AffectsArrange), "Yes", "No")
    AffectsMeasure.Text = If((fpm.AffectsMeasure), "Yes", "No")
    AffectsRender.Text = If((fpm.AffectsRender), "Yes", "No")
        [Inherits].Text = If((fpm.Inherits), "Yes", "No")
    IsDataBindingAllowed.Text = If((fpm.IsDataBindingAllowed), "Yes", "No")
    BindsTwoWayByDefault.Text = If((fpm.BindsTwoWayByDefault), "Yes", "No")

注釈

FrameworkElementFrameworkContentElement には、要素に存在するすべての依存関係プロパティに対する有効な値の変更を監視する OnPropertyChanged の実装が含まれています。FrameworkElement and FrameworkContentElement include an implementation of OnPropertyChanged that monitors effective value changes to all dependency properties that exist on an element. このロジックの一部として、有効な値を変更し AffectsMeasure のメタデータを持つ依存関係プロパティは true に設定され、遅延要求を開始してその要素のビジュアルを無効にします。As part of that logic, dependency properties that change effective value and have metadata with AffectsMeasure set to true will initiate a deferred request to invalidate the visuals for that element. この WPF フレームワークレベルの実装は既に配置されているため、WPF フレームワークレベルのレイアウト動作を大幅に置き換えたり変更したりしない限り、通常は AffectsMeasure で依存関係プロパティを検索する必要はありません。Because this WPF framework-level implementation is already in place, you typically do not need to look for dependency properties with AffectsMeasure unless you are substantially replacing or modifying the WPF framework-level layout behavior.

カスタム OnPropertyChanged 実装では、AffectsMeasuretrue場合に、依存関係プロパティの変更に類似した動作を選択することがあります。Custom OnPropertyChanged implementations might choose to have similar behavior for dependency property changes where AffectsMeasure is true.

PropertyMetadata の派生クラスのプロパティは、通常、読み取り/書き込み可能としてオブジェクトモデルで定義されます。Properties on derived classes of PropertyMetadata are typically defined in the object model as read-write. これは、インスタンスの初期化後に調整できるようにするためです。This is so they can be adjusted after initialization of the instance. ただし、メタデータが RegisterAddOwner、または OverrideMetadataの呼び出しの一部として使用された後、メタデータインスタンスとメタデータの詳細を伝えるプロパティが不変と見なされるようになりました。However, after the metadata is consumed as part of a call to Register, AddOwner, or OverrideMetadata, the property system will seal that metadata instance and properties that convey the specifics of the metadata are now considered immutable. このメタデータインスタンスで true IsSealed 後にこのプロパティを設定しようとすると、例外が発生します。Attempting to set this property after IsSealed is true on this metadata instance will raise an exception.

XAML テキストの使用XAML Text Usage

このクラスのメンバーは、通常、XAMLXAMLでは使用されません。Members of this class are not typically used in XAMLXAML.

適用対象

こちらもご覧ください