RequirementAttribute, classe

Mise à jour : novembre 2007

Définit les paramètres utilisés par la classe RequirementValidator.

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

Syntaxe

Public MustInherit Class RequirementAttribute _
    Inherits Attribute

Dim instance As RequirementAttribute
public abstract class RequirementAttribute : Attribute
public ref class RequirementAttribute abstract : public Attribute
public abstract class RequirementAttribute extends Attribute

Notes

Dérive de la classe abstraite RequirementAttribute pour spécifier des exigences pour vos fournisseurs et connecteurs de fonctionnalités.

RequirementValidator inspecte des types pour les attributs RequirementAttribute. Pour chaque RequirementAttribute qu'il trouve, il appelle la méthode abstraite MeetsRequirement, en passant une instance de la classe EditingContext. Les classes telles que RequiresServiceAttribute dérivent de RequirementAttribute et vérifient la présence d'un critère spécifié dans le contexte.

Ce système permet au concepteur d'activer uniquement le code qui peut s'exécuter avec succès dans le contexte d'édition.

Définissez vos spécifications personnalisées en dérivant de RequirementAttribute et en implémentant la méthode abstraite MeetsRequirement.

Exemples

L'exemple de code suivant indique comment joindre une stratégie de substitution personnalisée à un fournisseur de fonctionnalités en utilisant UsesItemPolicyAttribute qui dérive de RequirementAttribute. Pour obtenir l'intégralité du code, consultez Comment : créer une stratégie de substitution.

' The DockPanelAdornerProvider class implements an adorner
' that you can use to set the Margin property by using a 
' drag operation. The DockPanelPolicy class enables a 
' container policy for offering additional tasks and 
' adorners on the panel's children.
<UsesItemPolicy(GetType(DockPanelPolicy))>  _
Class DockPanelAdornerProvider
    Inherits AdornerProvider

    Public Sub New() 
        ' The adorner is a Rectangle element.
        Dim r As New Rectangle()
        r.Width = 23.0
        r.Height = 23.0
        r.Fill = AdornerColors.GlyphFillBrush

        ' Set the rectangle's placement in the adorner panel.
        Dim placement As New AdornerPlacementCollection()
        placement.PositionRelativeToAdornerWidth(-1, 0)
        placement.SizeRelativeToAdornerDesiredHeight(1.0, 0)
        placement.SizeRelativeToAdornerDesiredWidth(1.0, 0)
        placement.PositionRelativeToAdornerHeight(-1.0, 0)
        AdornerPanel.SetPlacements(r, placement)

        Dim p As New AdornerPanel()
        p.Children.Add(r)

        AdornerPanel.SetTask(r, New DockPanelMarginTask())

        Adorners.Add(p)
    End Sub
End Class
// The DockPanelAdornerProvider class implements an adorner
// that you can use to set the Margin property by using a 
// drag operation. The DockPanelPolicy class enables a 
// container policy for offering additional tasks and 
// adorners on the panel's children.
[UsesItemPolicy(typeof(DockPanelPolicy))]
class DockPanelAdornerProvider : AdornerProvider
{
    public DockPanelAdornerProvider() 
    {
        // The adorner is a Rectangle element.
        Rectangle r = new Rectangle();
        r.Width = 23.0;
        r.Height = 23.0;
        r.Fill = AdornerColors.GlyphFillBrush;

        // Set the rectangle's placement in the adorner panel.
        AdornerPlacementCollection placement = new AdornerPlacementCollection();
        placement.PositionRelativeToAdornerWidth(-1, 0);
        placement.SizeRelativeToAdornerDesiredHeight(1.0, 0);
        placement.SizeRelativeToAdornerDesiredWidth(1.0, 0);
        placement.PositionRelativeToAdornerHeight(-1.0, 0);
        AdornerPanel.SetPlacements(r, placement);

        AdornerPanel p = new AdornerPanel();
        p.Children.Add(r);

        AdornerPanel.SetTask(r, new DockPanelMarginTask());

        Adorners.Add(p);
    }
} 

Hiérarchie d'héritage

System.Object
  System.Attribute
    Microsoft.Windows.Design.RequirementAttribute
      Microsoft.Windows.Design.Policies.UsesItemPolicyAttribute
      Microsoft.Windows.Design.RequiresContextItemAttribute
      Microsoft.Windows.Design.RequiresServiceAttribute

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 RequirementAttribute

Microsoft.Windows.Design, espace de noms

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

Autres ressources

Comment : créer une stratégie de substitution

Fonctionnement de l'extensibilité du concepteur WPF