共用方式為


ItemPolicy 類別

更新:2007 年 11 月

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

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

語法

Public MustInherit Class ItemPolicy

Dim instance As ItemPolicy
public abstract class ItemPolicy
public ref class ItemPolicy abstract
public abstract class ItemPolicy

備註

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

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

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

範例

下列程式碼範例示範如何實作主要選取的自訂代理原則。如需完整的程式碼清單,請參閱 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;
        }
    }
}

繼承階層架構

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

執行緒安全

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

請參閱

參考

ItemPolicy 成員

Microsoft.Windows.Design.Policies 命名空間

PrimarySelectionPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

其他資源

功能提供者和功能連接器

了解 WPF 設計工具擴充性