Freigeben über


RequirementAttribute-Klasse

Aktualisiert: November 2007

Definiert die von der RequirementValidator-Klasse verwendeten Attribute.

Namespace:  Microsoft.Windows.Design
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Syntax

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

Hinweise

Sind von der abstrakten RequirementAttribute-Klasse abgeleitet, um Anforderungen an die Featureanbieter und Featureconnectoren anzugeben.

RequirementValidator überprüft Typen für RequirementAttribute-Attribute. Für jedes gefundene RequirementAttribute wird die abstrakte MeetsRequirement-Methode aufgerufen und eine Instanz der EditingContext-Klasse übergeben. Klassen wie RequiresServiceAttribute sind von RequirementAttribute abgeleitet und überprüfen den Kontext auf das Vorhandensein einer angegebenen Anforderung.

Dieses System ermöglicht dem Designer, nur Code zu aktivieren, der im Bearbeitungskontext erfolgreich ausgeführt werden kann.

Definieren Sie Ihre benutzerdefinierten Anforderungen, indem Sie diese von RequirementAttribute ableiten und die abstrakte MeetsRequirement-Methode implementieren.

Beispiele

Im folgenden Codebeispiel wird das Anfügen einer benutzerdefinierten Ersatzrichtlinie veranschaulicht. Hierfür wird das UsesItemPolicyAttribute verwendet, das sich von RequirementAttribute ableitet. Eine vollständige Codeauflistung finden Sie unter Gewusst wie: Erstellen einer Ersatzrichtlinie.

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

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

RequirementAttribute-Member

Microsoft.Windows.Design-Namespace

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

Weitere Ressourcen

Gewusst wie: Erstellen einer Ersatzrichtlinie

WPF-Designer-Erweiterbarkeit