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 - пространство имен