DependencyObject クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
依存関係プロパティ システムに参加しているオブジェクトを表します。
public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
- 継承
- 派生
- 属性
例
次の例は、新しい抽象クラスを作成する派生元 DependencyObject です。 その後、クラスは添付プロパティを登録し、その添付プロパティのサポート メンバーを含めます。
public abstract class AquariumObject3 : DependencyObject
{
public enum Bouyancy
{
Floats,
Sinks,
Drifts
}
public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
"Bouyancy",
typeof(Bouyancy),
typeof(AquariumObject3),
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(
"IsDirty",
typeof(Boolean),
typeof(AquariumObject3)
);
}
Public MustInherit Class AquariumObject3
Inherits DependencyObject
Public Enum Bouyancy
Floats
Sinks
Drifts
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) プロパティ システム サービスを有効にします。
プロパティ システムの主な機能は、プロパティの値を計算し、変更された値に関するシステム通知を提供することです。 プロパティ システムに参加するもう 1 つのキー クラスは DependencyProperty. DependencyProperty では、プロパティ システムへの依存関係プロパティの登録が可能になり、各依存関係プロパティの識別と情報が提供されますが DependencyObject 、基底クラスではオブジェクトが依存関係プロパティを使用できるようになります。
DependencyObject サービスと特性は次のとおりです。
依存関係プロパティのホスティングのサポート。 依存関係プロパティを登録するには、メソッドを Register 呼び出し、メソッドの戻り値をパブリック静的フィールドとしてクラスに格納します。
添付プロパティホスティングのサポート。 添付プロパティを登録するには、メソッドを RegisterAttached 呼び出し、メソッドの戻り値をパブリック静的読み取り専用フィールドとしてクラスに格納します。 (追加のメンバー要件もあります。これは、添付プロパティの WPF 固有の実装を表します。 詳細については、「 添付プロパティの概要」を参照してください)。その後、添付プロパティは、派生 DependencyObject元の任意のクラスに設定できます。
に存在するすべての依存関係プロパティの値のユーティリティ メソッドを取得、設定、およびクリアします DependencyObject。
メタデータ、強制値のサポート、プロパティ変更通知、依存関係プロパティまたは添付プロパティのコールバックのオーバーライド。 また、このクラスは DependencyObject 、依存関係プロパティの所有者ごとのプロパティ メタデータを容易にします。
、Freezable、またはVisualからContentElement派生したクラスの共通基底クラス。 (UIElement別の基本要素クラスには、.) を含む Visualクラス階層があります。
コンストラクター
DependencyObject() |
DependencyObject クラスの新しいインスタンスを初期化します。 |
プロパティ
DependencyObjectType |
このインスタンスの DependencyObjectType CLR 型をラップする値を取得します。 |
Dispatcher |
この Dispatcher が関連付けられている DispatcherObject を取得します。 (継承元 DispatcherObject) |
IsSealed |
このインスタンスが現在シールされている (読み取り専用である) かどうかを示す値を取得します。 |
メソッド
CheckAccess() |
呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。 (継承元 DispatcherObject) |
ClearValue(DependencyProperty) |
プロパティのローカル値をクリアします。 クリアするプロパティは DependencyProperty 識別子で指定されます。 |
ClearValue(DependencyPropertyKey) |
読み取り専用プロパティのローカル値を消去します。 消去するプロパティは、DependencyPropertyKey で指定します。 |
CoerceValue(DependencyProperty) |
指定した依存関係プロパティの値を強制します。 これは、呼び出し元の DependencyObject の依存関係プロパティのプロパティ メタデータで指定されている CoerceValueCallback 関数を呼び出すことによって実現されます。 |
Equals(Object) |
指定した DependencyObject が現在の DependencyObject と等しいかどうかを判断します。 |
GetHashCode() |
この DependencyObject のハッシュ コードを取得します。 |
GetLocalValueEnumerator() |
どの依存関係プロパティがこの DependencyObject 上にローカルに設定された値を持つかを確認するための、専用の列挙子を作成します。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
GetValue(DependencyProperty) |
DependencyObject のこのインスタンスにある依存関係プロパティの現在の有効値を返します。 |
InvalidateProperty(DependencyProperty) |
指定した依存関係プロパティの有効値を再評価します。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnPropertyChanged(DependencyPropertyChangedEventArgs) |
この DependencyObject の依存関係プロパティの有効値が更新された場合に必ず呼び出されます。 変更された特定の依存関係プロパティは、イベント データで報告されます。 |
ReadLocalValue(DependencyProperty) |
ローカルの依存関係プロパティの値を返します (存在する場合)。 |
SetCurrentValue(DependencyProperty, Object) |
依存関係プロパティ値のソースを変更せずにその値を設定します。 |
SetValue(DependencyProperty, Object) |
依存関係プロパティ識別子を指定して、該当する依存関係プロパティのローカル値を設定します。 |
SetValue(DependencyPropertyKey, Object) |
依存関係プロパティの DependencyPropertyKey 識別子で指定した読み取り専用の依存関係プロパティのローカル値を設定します。 |
ShouldSerializeProperty(DependencyProperty) |
シリアル化プロセスが、指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
VerifyAccess() |
呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。 (継承元 DispatcherObject) |