ItemPolicy, classe

Mise à jour : novembre 2007

Stratégie qui spécifie un ensemble de règles dans le concepteur.

Espace de noms :  Microsoft.Windows.Design.Policies
Assembly :  Microsoft.Windows.Design.Extensibility (dans Microsoft.Windows.Design.Extensibility.dll)

Syntaxe

Public MustInherit Class ItemPolicy

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

Notes

Dérivez de la classe abstraite ItemPolicy pour fournir une association entre un ensemble d'éléments et les fournisseurs de fonctionnalités correspondants.

Utilisez des stratégies pour découvrir des fonctionnalités d'extensibilité sur les éléments qui s'exécutent dans le concepteur. Les stratégies sont utilisées par les outils, les ornements et d'autres zones extensibles du concepteur. La classe SelectionPolicy est un exemple de stratégie qui surveille la modification de sélection et déclenche l'événement PolicyItemsChanged lorsque la sélection change. Le concepteur gère les événements de modification pour toutes les stratégies courantes et prend les mesures appropriées. Dans le cas de SelectionPolicy, le concepteur demande l'ensemble des tâches actives qui doivent être disponibles et l'ensemble des ornements qui doivent être visibles sur l'aire de conception.

Une instance unique d'un type de stratégie est activée lorsque le concepteur la découvre dans les métadonnées. Les stratégies durent pendant toute la durée de vie du concepteur et ne sont jamais désactivées, à moins que le concepteur lui-même soit supprimé. Si vous avez une stratégie qui contient une référence à des ressources globales au processus, implémentez la méthode OnDeactivated, appelée lorsque le gestionnaire de stratégie s'arrête.

Exemples

L'exemple de code suivant indique comment implémenter une stratégie de remplacement personnalisée pour la sélection primaire. Pour obtenir l'intégralité du code, consultez Comment : créer une stratégie de substitution.

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

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres ItemPolicy

Microsoft.Windows.Design.Policies, espace de noms

PrimarySelectionPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

Autres ressources

Fournisseurs de fonctionnalités et connecteurs de fonctionnalités

Fonctionnement de l'extensibilité du concepteur WPF