Поделиться через


RequirementAttribute - класс

Обновлен: Ноябрь 2007

Определяет атрибуты, используемые классом RequirementValidator.

Пространство имен:  Microsoft.Windows.Design
Сборка:  Microsoft.Windows.Design.Extensibility (в Microsoft.Windows.Design.Extensibility.dll)

Синтаксис

'Декларация
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

Заметки

Выведите из абстрактного классаRequirementAttribute, чтобы указать требования поставщиков функций и соединительных элементов.

RequirementValidator просматривает типы для выявленияRequirementAttribute атрибутов. Для каждого найденного RequirementAttribute он вызывает абстрактный метод MeetsRequirement, передавая экземпляр объекта EditingContext. Такие классы как RequiresServiceAttribute выводятся из RequirementAttribute и проверяют контекст на присутствие указанного требования.

Эта система позволяет конструктору активировать только такой код, который может успешно выполняться в контексте редактирования.

Определите пользовательские требования путем создания производного объекта из RequirementAttribute и реализации абстрактного метода MeetsRequirement .

Примеры

В следующем примере кода показано, как добавить пользовательскую замещающую политику в поставщик функций с помощью UsesItemPolicyAttribute, которая является производной от RequirementAttribute. Полный пример кода содержится в разделе Практическое руководство. Создание политики замещения.

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

Иерархия наследования

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

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

RequirementAttribute - члены

Microsoft.Windows.Design - пространство имен

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

Другие ресурсы

Практическое руководство. Создание политики замещения

Общее представление о расширяемости конструктора WPF