FrameworkPropertyMetadata.AffectsRender FrameworkPropertyMetadata.AffectsRender FrameworkPropertyMetadata.AffectsRender FrameworkPropertyMetadata.AffectsRender Property


依存関係プロパティが一般的なレイアウトに何らかの形で影響する (配置や測定に特に影響を与えないが再描画が必要になる) 可能性があるかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether a dependency property potentially affects the general layout in some way that does not specifically influence arrangement or measurement, but would require a redraw.

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


このメタデータが存在する依存関係プロパティがレンダリングに影響を与える場合は、true。それ以外の場合は、falsetrue if the dependency property on which this metadata exists affects rendering; 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")


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

カスタムOnPropertyChanged実装の依存関係プロパティの変更と同様の動作を選択、AffectsRendertrueします。Custom OnPropertyChanged implementations might choose to have similar behavior for dependency property changes where AffectsRender is true.

プロパティをいずれかのクラスの派生PropertyMetadata通常は読み取り/書き込みとしてオブジェクト モデルで定義します。Properties on any 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. 後は、このプロパティを設定しようとしています。IsSealedtrueでこのメタデータ インスタンスで例外が発生します。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.