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 命名空間