Condividi tramite


Classe RequirementAttribute

Aggiornamento: novembre 2007

Definisce gli attributi utilizzati dalla classe RequirementValidator.

Spazio dei nomi:  Microsoft.Windows.Design
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Sintassi

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

Note

Derivare dalla classe RequirementAttribute astratta per specificare i requisiti per i provider di funzionalità e i connettori di funzionalità.

RequirementValidator controlla tipi per gli attributi RequirementAttribute. Per ogni oggetto RequirementAttribute trovato, chiama il metodo MeetsRequirement astratto, passando un'istanza della classe EditingContext. Classi quale RequiresServiceAttribute derivano da RequirementAttribute e controllano il contesto per verificare la presenza di un requisito specificato.

Questo sistema consente alla finestra di progettazione di attivare solo il codice che è possibile eseguire correttamente nel contesto di modifica.

Definire requisiti personalizzati derivando da RequirementAttribute e implementando il metodo MeetsRequirement astratto.

Esempi

Nell'esempio di codice seguente viene illustrato come connettere un criterio sostitutivo personalizzato a un provider di funzionalità utilizzando UsesItemPolicyAttribute, che deriva da RequirementAttribute. Per l'elenco di codice completo, vedere Procedura: creare un criterio sostitutivo.

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

Gerarchia di ereditarietà

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

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Membri RequirementAttribute

Spazio dei nomi Microsoft.Windows.Design

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

Altre risorse

Procedura: creare un criterio sostitutivo

Informazioni sull'estensibilità Progettazione WPF