FrameworkPropertyMetadata.AffectsRender プロパティ

定義

依存関係プロパティが一般的なレイアウトに何らかの形で影響する (配置や測定に特に影響を与えないが再描画が必要になる) 可能性があるかどうかを示す値を取得または設定します。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.

public:
 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

プロパティ値

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 実装では、がの場合に、依存関係プロパティの変更に類似した動作を選択することがあり AffectsRender true ます。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. ただし、、、またはの呼び出しの一部としてメタデータが使用された後は、プロパティシステムによって、メタデータ Register AddOwner 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. このメタデータインスタンスのがの後にこのプロパティを設定しようとすると IsSealed true 、例外が発生します。Attempting to set this property after IsSealed is true on this metadata instance will raise an exception.

XAML テキストの使用XAML Text Usage

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

適用対象

こちらもご覧ください