Compartir a través de


RequirementAttribute (Clase)

Actualización: noviembre 2007

Define los atributos que utiliza la clase RequirementValidator.

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

Sintaxis

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

Comentarios

Derive de la clase abstracta RequirementAttribute para especificar los requisitos para los proveedores de características y conectores de características.

RequirementValidator inspecciona los tipos para los atributos RequirementAttribute. Por cada RequirementAttribute que encuentra, llama al método abstracto MeetsRequirement, pasando una instancia de la clase EditingContext. Clases como RequiresServiceAttribute derivan de RequirementAttribute y comprueban el contexto para detectar la presencia de un requisito especificado.

Este sistema permite al diseñador activar únicamente el código que se puede ejecutar correctamente en el contexto de edición.

Define los requisitos personalizados derivando de RequirementAttribute e implementando el método abstracto MeetsRequirement.

Ejemplos

En el siguiente ejemplo de código se muestra cómo asociar una directiva de suplente personalizada con un proveedor de características mediante UsesItemPolicyAttribute, que deriva de RequirementAttribute. Para obtener una lista de código completa, vea Cómo: Crear una directiva suplente.

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

Jerarquía de herencia

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

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

RequirementAttribute (Miembros)

Microsoft.Windows.Design (Espacio de nombres)

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

Otros recursos

Cómo: Crear una directiva suplente

Introducción a la extensibilidad de WPF Designer