DependencyObject クラス


依存関係プロパティ システムに参加しているオブジェクトを表します。Represents an object that participates in the dependency property system.

public ref class DependencyObject : System::Windows::Threading::DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
    inherit DispatcherObject
type DependencyObject = class
    inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject

次の例では、から派生し、 DependencyObject 新しい抽象クラスを作成します。The following example derives from DependencyObject to create a new abstract class. 次に、クラスは添付プロパティを登録し、添付プロパティのサポートメンバーを含めます。The class then registers an attached property and includes support members for that attached property.

public abstract class AquariumObject3 : DependencyObject
    public enum Bouyancy
    public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
      new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
      new ValidateValueCallback(ValidateBouyancy)
    public static void SetBouyancy(UIElement element, Bouyancy value)
        element.SetValue(BouyancyProperty, value);
    public static Bouyancy GetBouyancy(UIElement element)
        return (Bouyancy)element.GetValue(BouyancyProperty);
    private static bool ValidateBouyancy(object value)
        Bouyancy bTest = (Bouyancy) value;
        return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
    public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
Public MustInherit Class AquariumObject3
    Inherits DependencyObject
    Public Enum Bouyancy
    End Enum
    Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
    Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
        element.SetValue(BouyancyProperty, value)
    End Sub
    Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
        Return CType(element.GetValue(BouyancyProperty), Bouyancy)
    End Function
    Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
        Dim bTest As Bouyancy = CType(value, Bouyancy)
        Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
    End Function
    Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class


クラスは、 DependencyObject 多数の派生クラスで Windows Presentation Foundation (WPF) プロパティシステムサービスを有効にします。The DependencyObject class enables Windows Presentation Foundation (WPF) property system services on its many derived classes.

プロパティシステムの主な機能は、プロパティの値を計算し、変更された値に関するシステム通知を提供することです。The property system's primary function is to compute the values of properties, and to provide system notification about values that have changed. プロパティシステムに参加するもう1つのキークラスは DependencyProperty です。Another key class that participates in the property system is DependencyProperty. DependencyProperty プロパティシステムへの依存関係プロパティの登録を有効にし、各依存関係プロパティに関する id と情報を提供し DependencyObject ます。一方、基底クラスでは、オブジェクトが依存関係プロパティを使用できるようになっています。DependencyProperty enables the registration of dependency properties into the property system, and provides identification and information about each dependency property, whereas DependencyObject as a base class enables objects to use the dependency properties.

DependencyObject サービスと特性は次のとおりです。DependencyObject services and characteristics include the following:

  • 依存関係プロパティのホストサポート。Dependency property hosting support. 依存関係プロパティを登録するには、 Register メソッドを呼び出し、メソッドの戻り値をパブリックな静的フィールドとしてクラスに格納します。You register a dependency property by calling the Register method, and storing the method's return value as a public static field in your class.

  • 添付プロパティのホスティングサポート。Attached property hosting support. 添付プロパティを登録するには、 RegisterAttached メソッドを呼び出し、メソッドの戻り値をパブリックな静的読み取り専用フィールドとしてクラスに格納します。You register an attached property by calling the RegisterAttached method, and storing the method's return value as a public static read-only field in your class. (追加のメンバー要件もあります。これは、添付プロパティの WPF 固有の実装を表します。(There are also additional member requirements; note that this represents a WPF specific implementation for attached properties. 詳細については、「 添付プロパティの概要」を参照してください。添付プロパティは、から派生した任意のクラスで設定でき DependencyObject ます。For details, see Attached Properties Overview.) Your attached property can then be set on any class that derives from DependencyObject.

  • に存在する依存関係プロパティの値のユーティリティメソッドを取得、設定、およびクリアし DependencyObject ます。Get, set, and clear utility methods for values of any dependency properties that exist on the DependencyObject.

  • メタデータ、強制値のサポート、プロパティの変更通知、および依存関係プロパティまたは添付プロパティのコールバックのオーバーライド。Metadata, coerce value support, property changed notification, and override callbacks for dependency properties or attached properties. また、クラスは、 DependencyObject 依存関係プロパティの所有者ごとのプロパティのメタデータを容易にします。Also, the DependencyObject class facilitates the per-owner property metadata for a dependency property.

  • ContentElementFreezable 、またはから派生したクラスの共通の基本クラス VisualA common base class for classes derived from ContentElement, Freezable, or Visual. ( UIElement 、もう1つの基本要素クラスには、を含むクラス階層があり Visual ます)。(UIElement, another base element class, has a class hierarchy that includes Visual.)



DependencyObject クラスの新しいインスタンスを初期化します。Initializes a new instance of the DependencyObject class.



DependencyObjectTypeこのインスタンスの CLR 型をラップするを取得します。Gets the DependencyObjectType that wraps the CLR type of this instance.


この Dispatcher が関連付けられている DispatcherObject を取得します。Gets the Dispatcher this DispatcherObject is associated with.

(継承元 DispatcherObject)

このインスタンスが現在シールされている (読み取り専用である) かどうかを示す値を取得します。Gets a value that indicates whether this instance is currently sealed (read-only).



呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。Determines whether the calling thread has access to this DispatcherObject.

(継承元 DispatcherObject)

プロパティのローカル値をクリアします。Clears the local value of a property. クリアするプロパティは DependencyProperty 識別子で指定されます。The property to be cleared is specified by a DependencyProperty identifier.


読み取り専用プロパティのローカル値を消去します。Clears the local value of a read-only property. 消去するプロパティは、DependencyPropertyKey で指定します。The property to be cleared is specified by a DependencyPropertyKey.


指定した依存関係プロパティの値を強制します。Coerces the value of the specified dependency property. これは、呼び出し元の DependencyObject の依存関係プロパティのプロパティ メタデータで指定されている CoerceValueCallback 関数を呼び出すことによって実現されます。This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.


指定した DependencyObject が現在の DependencyObject と等しいかどうかを判断します。Determines whether a provided DependencyObject is equivalent to the current DependencyObject.


この DependencyObject のハッシュ コードを取得します。Gets a hash code for this DependencyObject.


どの依存関係プロパティがこの DependencyObject 上にローカルに設定された値を持つかを確認するための、専用の列挙子を作成します。Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.


現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

DependencyObject のこのインスタンスにある依存関係プロパティの現在の有効値を返します。Returns the current effective value of a dependency property on this instance of a DependencyObject.


指定した依存関係プロパティの有効値を再評価します。Re-evaluates the effective value for the specified dependency property.


現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

この DependencyObject の依存関係プロパティの有効値が更新された場合に必ず呼び出されます。Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. 変更された特定の依存関係プロパティは、イベント データで報告されます。The specific dependency property that changed is reported in the event data.


ローカルの依存関係プロパティの値を返します (存在する場合)。Returns the local value of a dependency property, if it exists.

SetCurrentValue(DependencyProperty, Object)

依存関係プロパティ値のソースを変更せずにその値を設定します。Sets the value of a dependency property without changing its value source.

SetValue(DependencyProperty, Object)

依存関係プロパティ識別子を指定して、該当する依存関係プロパティのローカル値を設定します。Sets the local value of a dependency property, specified by its dependency property identifier.

SetValue(DependencyPropertyKey, Object)

依存関係プロパティの DependencyPropertyKey 識別子で指定した読み取り専用の依存関係プロパティのローカル値を設定します。Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.


シリアル化プロセスが、指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.


現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。Enforces that the calling thread has access to this DispatcherObject.

(継承元 DispatcherObject)