Поделиться через


ItemPolicy - класс

Обновлен: Ноябрь 2007

Политика, задающая набор правил в конструкторе.

Пространство имен:  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, который вызывается при завершении работы диспетчера политик.

Примеры

В следующем примере кода показано, как реализовать пользовательскую политику замещения для первичного объекта выделения. Полный пример кода см. в разделе Практическое руководство. Создание политики замещения.

' 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

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

ItemPolicy - члены

Microsoft.Windows.Design.Policies - пространство имен

PrimarySelectionPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

Другие ресурсы

Поставщики функций и соединительные элементы

Общее представление о расширяемости конструктора WPF