共用方式為


RequirementAttribute 類別

定義 RequirementValidator 類別所使用的屬性。

繼承階層架構

System.Object
  System.Attribute
    Microsoft.Windows.Design.RequirementAttribute
      Microsoft.Windows.Design.Policies.UsesItemPolicyAttribute
      Microsoft.Windows.Design.RequiresContextItemAttribute
      Microsoft.Windows.Design.RequiresServiceAttribute

命名空間:  Microsoft.Windows.Design
組件:  Microsoft.Windows.Design.Extensibility (在 Microsoft.Windows.Design.Extensibility.dll 中)

語法

'宣告
Public MustInherit Class RequirementAttribute _
    Inherits Attribute
public abstract class RequirementAttribute : Attribute
public ref class RequirementAttribute abstract : public Attribute
[<AbstractClass>]
type RequirementAttribute =  
    class
        inherit Attribute
    end
public abstract class RequirementAttribute extends Attribute

RequirementAttribute 型別會公開下列成員。

建構函式

  名稱 說明
受保護的方法 RequirementAttribute 初始化 RequirementAttribute 類別的新執行個體。

回頁首

屬性

  名稱 說明
公用屬性 AllRequired 取得值,這個值表示是否需要相同型別的所有需求屬性。
公用屬性 TypeId 在衍生類別中實作時,取得這個 Attribute 的唯一識別項。 (繼承自 Attribute)。

回頁首

方法

  名稱 說明
公用方法 CreateSubscription 傳回 RequirementSubscription 物件,當這個屬性中包含的需求變更時,這個物件可用來接受通知。
公用方法 Equals 基礎架構。傳回數值,表示這個執行個體是否等於指定的物件。 (繼承自 Attribute)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法 GetHashCode 傳回這個執行個體的雜湊程式碼。 (繼承自 Attribute)。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
公用方法 IsDefaultAttribute 在衍生類別中覆寫時,表示這個執行個體的值是否為衍生類別的預設值。 (繼承自 Attribute)。
公用方法 Match 在衍生類別中覆寫時,會傳回值,表示這個執行個體是否等於指定物件。 (繼承自 Attribute)。
公用方法 MeetsRequirement 判斷 EditingContext 是否符合這個屬性中指定的需求。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

明確介面實作

  名稱 說明
明確介面實作私用方法 _Attribute.GetIDsOfNames 將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。 (繼承自 Attribute)。
明確介面實作私用方法 _Attribute.GetTypeInfo 擷取物件的型別資訊,可以用來取得介面的型別資訊。 (繼承自 Attribute)。
明確介面實作私用方法 _Attribute.GetTypeInfoCount 擷取物件提供的型別資訊介面數目 (0 或 1)。 (繼承自 Attribute)。
明確介面實作私用方法 _Attribute.Invoke 提供物件所公開的屬性和方法的存取權。 (繼承自 Attribute)。

回頁首

備註

您可以衍生自抽象 RequirementAttribute 類別,以指定功能提供者和功能連接器的需求。

RequirementValidator 會檢查型別中是否有 RequirementAttribute 屬性。 針對它找到的每個 RequirementAttribute,它都會藉由傳遞 EditingContext 類別的執行個體來呼叫抽象 MeetsRequirement 方法。 如 RequiresServiceAttribute 的類別會衍生自 RequirementAttribute 並檢查內容中是否有指定的需求。

這個系統只允許設計工具啟動可在編輯內容中順利執行的程式碼。

您可以衍生自 RequirementAttribute 並實作抽象 MeetsRequirement 方法,以定義自己的自訂需求。

範例

下列程式碼範例說明如何使用 UsesItemPolicyAttribute (衍生自 RequirementAttribute),將自訂 Surrogate 原則附加至功能提供者。 如需完整的程式碼清單,請參閱 HOW TO:建立 Surrogate 原則

' The DockPanelAdornerProvider class implements an adorner
' that you can use to set the Margin property by using a 
' drag operation. The DockPanelPolicy class enables a 
' container policy for offering additional tasks and 
' adorners on the panel's children.
<UsesItemPolicy(GetType(DockPanelPolicy))>  _
Class DockPanelAdornerProvider
    Inherits AdornerProvider

    Public Sub New() 
        ' The adorner is a Rectangle element.
        Dim r As New Rectangle()
        r.Width = 23.0
        r.Height = 23.0
        r.Fill = AdornerColors.GlyphFillBrush

        ' Set the rectangle's placement in the adorner panel.
        AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft)
        AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop)

        Dim p As New AdornerPanel()
        p.Children.Add(r)

        AdornerPanel.SetTask(r, New DockPanelMarginTask())

        Adorners.Add(p)
    End Sub
End Class
// The DockPanelAdornerProvider class implements an adorner
// that you can use to set the Margin property by using a 
// drag operation. The DockPanelPolicy class enables a 
// container policy for offering additional tasks and 
// adorners on the panel's children.
[UsesItemPolicy(typeof(DockPanelPolicy))]
class DockPanelAdornerProvider : AdornerProvider
{
    public DockPanelAdornerProvider() 
    {
        // The adorner is a Rectangle element.
        Rectangle r = new Rectangle();
        r.Width = 23.0;
        r.Height = 23.0;
        r.Fill = AdornerColors.GlyphFillBrush;

        // Set the rectangle's placement in the adorner panel.
        AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft);
        AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop);

        AdornerPanel p = new AdornerPanel();
        p.Children.Add(r);

        AdornerPanel.SetTask(r, new DockPanelMarginTask());

        Adorners.Add(p);
    }
} 

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

Microsoft.Windows.Design 命名空間

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

其他資源

HOW TO:建立 Surrogate 原則

了解 WPF 設計工具擴充性