ItemPolicy (Clase)

Actualización: noviembre 2007

Una directiva que especifica un conjunto de reglas en el diseñador.

Espacio de nombres:  Microsoft.Windows.Design.Policies
Ensamblado:  Microsoft.Windows.Design.Extensibility (en Microsoft.Windows.Design.Extensibility.dll)

Sintaxis

Public MustInherit Class ItemPolicy

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

Comentarios

Derive de la clase abstracta ItemPolicy para proporcionar una asociación entre un conjunto de elementos y los proveedores de características correspondientes.

Use las directivas para detectar las características de extensibilidad en los elementos que se están ejecutando en el diseñador. Las herramientas, los adornos y otras áreas del diseñador que son extensibles utilizan las directivas. La clase SelectionPolicy es un ejemplo de directiva que controla los cambios de la selección y provoca el evento PolicyItemsChanged cuando la selección cambia. El diseñador administra los eventos de cambio para todas las directivas en ejecución y lleva a cabo la acción adecuada. En el caso de SelectionPolicy, el diseñador hace una consulta sobre el conjunto de tareas activas que deben estar disponibles y el conjunto de adornos que deben estar visibles en la superficie de diseño.

Se activa una instancia única de un tipo de directiva cuando el diseñador la detecta en metadatos. Las directivas duran el tiempo que dura el diseñador y nunca están desactivadas a menos que se elimine el propio diseñador. Si tiene una directiva que contiene una referencia a los recursos globales del proceso, implemente el método OnDeactivated, al que se llama cuando termina el administrador de la directiva.

Ejemplos

En el ejemplo de código siguiente se muestra cómo implementar una directiva suplente personalizada para la selección principal. Para obtener una lista de código completa, vea Cómo: Crear una directiva suplente.

' 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;
        }
    }
}

Jerarquía de herencia

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

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

ItemPolicy (Miembros)

Microsoft.Windows.Design.Policies (Espacio de nombres)

PrimarySelectionPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

Otros recursos

Proveedores de características y conectores de características

Introducción a la extensibilidad de WPF Designer