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


RequirementAttribute - класс

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

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

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

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

Синтаксис

'Декларация
Public MustInherit Class RequirementAttribute _
    Inherits Attribute
public abstract class RequirementAttribute : Attribute
public ref class RequirementAttribute abstract : public Attribute
[<AbstractClass>]
type RequirementAttribute =  
    class
        inherit Attribute
    end
public abstract class RequirementAttribute extends Attribute

Тип RequirementAttribute предоставляет следующие члены.

Конструкторы

  Имя Описание
Защищенный метод RequirementAttribute Инициализирует новый экземпляр класса RequirementAttribute.

В начало страницы

Свойства

  Имя Описание
Открытое свойство AllRequired Получает значение, указывающее, необходимо ли, чтобы все атрибуты требований были одинакового типа.
Открытое свойство TypeId При реализации в производном классе возвращает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute.)

В начало страницы

Методы

  Имя Описание
Открытый метод CreateSubscription Возвращает объект RequirementSubscription, который можно использовать для получения уведомлений при изменении требования, содержащегося в этом атрибуте.
Открытый метод Equals Инфраструктура. Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute.)
Защищенный метод Finalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)
Открытый метод GetHashCode Возвращает хеш-код данного экземпляра. (Унаследовано от Attribute.)
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Открытый метод IsDefaultAttribute При переопределении в производном классе показывает, является ли значение данного экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute.)
Открытый метод Match При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute.)
Открытый метод MeetsRequirement Определяет, соответствует ли EditingContext требованиям, указанным в этом атрибуте.
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Открытый метод ToString Возвращение строки, представляющей текущий объект. (Унаследовано от Object.)

В начало страницы

Явные реализации интерфейса

  Имя Описание
Явная реализация интерфейсаЗакрытый метод _Attribute.GetIDsOfNames Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.GetTypeInfo Возвращает сведения о типе объекта, которые могут использоваться для получения сведений о типе интерфейса. (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.GetTypeInfoCount Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute.)
Явная реализация интерфейсаЗакрытый метод _Attribute.Invoke Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от 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.
        AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft)
        AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop)

        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.
        AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft);
        AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop);

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

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

        Adorners.Add(p);
    }
} 

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

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

См. также

Ссылки

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

RequiresContextItemAttribute

RequiresServiceAttribute

UsesItemPolicyAttribute

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

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

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