共用方式為


ItemPolicy 類別

會在設計工具中指定一組規則的原則。

繼承階層架構

System.Object
  Microsoft.Windows.Design.Policies.ItemPolicy
    Microsoft.Windows.Design.Policies.SelectionPolicy

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

語法

'宣告
Public MustInherit Class ItemPolicy
public abstract class ItemPolicy
public ref class ItemPolicy abstract
[<AbstractClass>]
type ItemPolicy =  class end
public abstract class ItemPolicy

ItemPolicy 型別會公開下列成員。

建構函式

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

回頁首

屬性

  名稱 說明
受保護的屬性 Context 會取得設計工具的編輯內容。
公用屬性 IsSurrogate 取得值,這個值表示原則是否為代理原則。
公用屬性 PolicyItems 會取得原則中所有項目的列舉。

回頁首

方法

  名稱 說明
公用方法 Equals 判斷指定的 Object 和目前的 Object 是否相等。 (繼承自 Object)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法 GetHashCode 做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法 GetSurrogateItems 會傳回這個項目的選擇性代理項目。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
受保護的方法 OnActivated 會在啟動原則時呼叫。
受保護的方法 OnDeactivated 會在停用原則時呼叫。
受保護的方法 OnPolicyItemsChanged 引發 PolicyItemsChanged 事件。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

事件

  名稱 說明
公用事件 PolicyItemsChanged 會在原則變更時發生。

回頁首

備註

您可以衍生自抽象 ItemPolicy 類別,以提供一組項目與相對應的功能提供者之間的關聯性。

您可以使用原則,找尋設計工具內執行中之項目的擴充性功能。 原則是由工具、裝飾項,以及設計工具中可擴充的其他區域使用。 SelectionPolicy 類別就是原則的範例,可以監視選取項目變更,並且在選取項目變更時引發 PolicyItemsChanged 事件。 設計工具可以處理所有執行中原則的變更事件,並採取適當的動作。 在 SelectionPolicy 範例中,設計工具會查詢應該可用的作用中工作集合,以及設計介面上應該可見的裝飾項集合。

當設計工具在中繼資料內找到原則類型的單一執行個體時,就會啟動這個執行個體。 原則會在設計工具存留期間持續存在,而且除非已經處置設計工具本身,否則不會停用原則。 如果您有存放處理全域資源之參考的原則,請實作 OnDeactivated 方法,這個方法是在原則管理員結束時呼叫。

「代理原則」(Surrogate Policy) 可提供另外一組項目集合,這個集合可用來找出功能提供者的位置。 代理原則通常是由控制項容器使用,這些容器可提供額外的工作和裝飾項給它們的子系。 在這個案例中,容器會提供代理原則,其中 GetSurrogateItems 方法會傳回所提供之項目的父代。

範例

下列程式碼範例示範如何實作主要選取的自訂代理原則。 如需完整的程式碼清單,請參閱 HOW TO:建立 Surrogate 原則

' The DockPanelPolicy class implements a surrogate policy that
' provides container semantics for a selected item. By using 
' this policy, the DemoDockPanel container control offers 
' additional tasks and adorners on its children. 
Class DockPanelPolicy
    Inherits PrimarySelectionPolicy

    Public Overrides ReadOnly Property IsSurrogate() As Boolean 
        Get
            Return True
        End Get
    End Property

    Public Overrides Function GetSurrogateItems( _
        ByVal item As Microsoft.Windows.Design.Model.ModelItem) _
        As System.Collections.Generic.IEnumerable( _
        Of Microsoft.Windows.Design.Model.ModelItem)

        Dim parent As ModelItem = item.Parent

        Dim e As New System.Collections.Generic.List(Of ModelItem)

        If (parent IsNot Nothing) Then

            e.Add(parent)

        End If

        Return e

    End Function

End Class
// The DockPanelPolicy class implements a surrogate policy that
// provides container semantics for a selected item. By using 
// this policy, the DemoDockPanel container control offers 
// additional tasks and adorners on its children. 
class DockPanelPolicy : PrimarySelectionPolicy 
{
    public override bool IsSurrogate 
    {
        get 
        { 
            return true;
        }
    }

    public override IEnumerable<ModelItem> GetSurrogateItems(ModelItem item) 
    {
        ModelItem parent = item.Parent;

        if (parent != null)
        {
            yield return parent;
        }
    }
}

執行緒安全

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

請參閱

參考

Microsoft.Windows.Design.Policies 命名空間

PrimarySelectionPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

其他資源

功能提供者和功能連接器

了解 WPF 設計工具擴充性