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) 屬性系統服務。
屬性系統的主要函式是計算屬性值,並提供已變更之值的系統通知。 參與屬性系統的另一個索引鍵類別是 DependencyProperty 。 DependencyProperty 會啟用將相依性屬性註冊至屬性系統,並提供每個相依性屬性的識別和資訊,而 DependencyObject 基類可讓物件使用相依性屬性。
DependencyObject 服務和特性包括下列各項:
相依性屬性裝載支援。 您可以藉由呼叫 Register 方法來註冊相依性屬性,並將方法的傳回值儲存為類別中的公用靜態欄位。
附加的屬性裝載支援。 您可以藉由呼叫 RegisterAttached 方法來註冊附加屬性,並將方法的傳回值儲存為類別中的公用靜態唯讀欄位。 (也有其他成員需求;請注意,這代表附加屬性的 WPF 特定實作。如需詳細資訊,請參閱 附加屬性概觀.) 您的附加屬性接著可以在衍生自 DependencyObject 的任何類別上設定。
取得、設定及清除存在於 上之任何相依性屬性值的 DependencyObject 公用程式方法。
中繼資料、強制值支援、屬性變更通知,以及覆寫相依性屬性或附加屬性的回呼。 此外,類別 DependencyObject 也有助於相依性屬性的個別擁有者屬性中繼資料。
衍生自 ContentElement 、 Freezable 或 Visual 之類別的通用基類。 UIElement (,另一個基底元素類別具有類別階層,其中包含 Visual .)
建構函式
DependencyObject() |
初始化 DependencyObject 類別的新執行個體。 |
屬性
DependencyObjectType |
取得包裝 DependencyObjectType 這個實例 CLR 型別的 。 |
Dispatcher |
取得與這個 Dispatcher 關聯的 DispatcherObject。 (繼承來源 DispatcherObject) |
IsSealed |
取得值,這個值表示此執行個體目前是否已密封 (唯讀)。 |