資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

DependencyObject.GetValue 方法

更新:2007 年 11 月

傳回這個 DependencyObject 之執行個體上相依性屬性的目前有效值。

命名空間:  System.Windows
組件:  WindowsBase (在 WindowsBase.dll 中)

public Object GetValue(
	DependencyProperty dp
)
public Object GetValue(
	DependencyProperty dp
)
public function GetValue(
	dp : DependencyProperty
) : Object
您不能在 XAML 使用方法。

參數

dp
型別:System.Windows.DependencyProperty

要為其擷取值之屬性的 DependencyProperty 識別項。

傳回值

型別:System.Object

傳回目前的有效值。

例外狀況條件
InvalidOperationException

指定的 dp 或其值無效,或是指定的 dp 不存在。

有效值是屬性值,會由屬性系統傳回給任何要求該值的呼叫端。有效值是屬性系統在評估所有可能參與屬性系統值優先順序的輸入後,所產生的結果。這包括強制型轉和動畫。如需詳細資訊,請參閱相依性屬性值優先順序

這個方法絕對不會傳回 UnsetValueUnsetValue 是屬性系統的 Sentinel 值,該值是在內部用於各種不同容量中,有時也會透過強制型轉回呼公開。

若您不確定屬性的型別應該為何,可以查詢要求之相依性屬性的識別項,以判斷是否有更特定的 PropertyType 可讓傳回值轉換成該型別。

本範例示範如何使用 DependencyProperty 欄位支援 Common Language Runtime (CLR) 屬性,藉以定義相容性屬性。當您定義自己的屬性時,若想讓這些屬性支援 Windows Presentation Foundation (WPF) 功能的許多層面,包括樣式、資料繫結 (Data Binding)、繼承 (Inheritance)、動畫和預設值,您應該將它們實作成相依性屬性。

下列範例首先會藉由呼叫 Register 方法來註冊相依性屬性。用來儲存相依性屬性名稱和特性的識別項欄位,必須是您在呼叫 Register 時為相依性屬性選擇的 Name,再加上常值字串 Property。例如,如果您使用 Name of Location 註冊相依性屬性,則您對相依性屬性定義的識別項欄位必須命名為 LocationProperty

在這個範例中,相依性屬性及其 CLR 存取子 (Accessor) 的名稱是 State;識別項欄位是 StateProperty;屬性的型別是 Boolean;而註冊相依性屬性的欄位則是 MyStateControl

如果未遵照這個命名模式,設計工具可能無法正確回報您的屬性,而且屬性系統樣式應用程式的某些方面可能無法如預期般地運作。

您也可以指定相依性屬性的預設中繼資料 (Metadata)。這個範例會將 State相依性屬性的預設值註冊成 false

public class MyStateControl : ButtonBase
{
  public MyStateControl() : base() { }
  public Boolean State
  {
    get { return (Boolean)this.GetValue(StateProperty); }
    set { this.SetValue(StateProperty, value); } 
  }
  public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
    "State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}


如需完整範例,請參閱具有相依性屬性的自訂類別範例

如需實作相依性屬性 (相對於只使用私用 (Private) 欄位支援 CLR 屬性) 的方式和原因的詳細資訊,請參閱相依性屬性概觀

更多程式碼

HOW TO:註冊附加屬性本範例顯示如何註冊附加屬性並提供公用存取子,這樣在可延伸標記語言 (XAML) 和程式碼中都可以使用該屬性。附加屬性是可延伸標記語言 (XAML) 所定義的語法概念。大部分 WPF 型別的附加屬性,也會以相依性屬性的方式實作。您可以在任何 DependencyObject 型別上使用相依性屬性。

Windows Vista

.NET Framework 和 .NET Compact Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱.NET Framework 系統需求

.NET Framework

支援版本:3.5、3.0

社群新增項目

顯示:
© 2014 Microsoft