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


AmbientAttribute Класс

Определение

Указывает, что свойство или тип должны обрабатываться как свойство или тип окружения. Концепция окружения относится к тому, как обработчики XAML определяют владельцев типов членов.

public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)>]
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
Наследование
AmbientAttribute
Атрибуты

Комментарии

Внешнее свойство — это свойство, в котором значение, как ожидается, будет доступно в контексте средства синтаксического анализа при создании графа объектов, но где приостанавливается типичный поиск членов типа для целей непосредственного создания набора узлов XAML. Существует два main сценария для концепции окружения:

  • Некоторое другое свойство того же объекта влияет и определяет, как должен работать этот поиск свойства объекта.

  • Свойство представляет более крупный механизм отсрочки, а внешние возможности для поиска значения члена распространяются на все объекты, содержащиеся в текущем объекте.

Этот атрибут может применяться к определенным свойствам, которые имеют ожидаемые контейнеры, обеспечивающие поведение поиска внешнего свойства, или к классу, чтобы включить поведение внешнего свойства во всех случаях этого типа значения для свойства.

AmbientAttribute Можно также применить к методу CLR для поддержки атрибута присоединенного свойства XAML в качестве окружения. Это потенциально необходимо, так как в реализации СРЕДЫ CLR присоединенное свойство XAML реализуется или представляется отражением в виде шаблона метода доступа с get помощью методов и set . Фактическое свойство CLR для атрибута не существует, поэтому ограничение использования для AttributeTargetsProperty не позволило бы указать присоединенный член в качестве внешнего. Для присоединяемого элемента, который требуется сообщить как внешний, прикрепите get метод доступа. Не следует пытаться атрибутировать методы, которые не поддерживают методы присоединяемых элементов.

В предыдущих версиях платформа .NET Framework этот класс существовал в сборке WindowsBase для WPF. В платформа .NET Framework 4 AmbientAttribute находится в сборке System.Xaml. Для получения дополнительной информации см. Types Migrated from WPF to System.Xaml.

Внешние типы (типы, применяемые AmbientAttribute на уровне типа) можно использовать в определенных ситуациях обработки XAML, когда тип свойства необходимо разрешить не по порядку.

Сценарии записи объектов

Если вы определяете модуль записи объектов XAML и сталкиваетесь со свойством, методом или типом, где AmbientAttribute применяется, обычно требуется доступ к службе, чтобы определить предполагаемое поведение подстановки внешних свойств, необходимое для записи объектов. Для получения дополнительной информации см. IAmbientProvider.

Преобразователи величин

Преобразователям типов или расширениям разметки может потребоваться знать внешние сведения, чтобы обрабатывать свойства, представляющие косвенные сопоставления типов, например свойства, определяющие члены или типы по строковым именам с квалификацией или без нее. В этом сценарии AmbientAttribute не предназначено для непосредственного использования для логики кода преобразователя значений. Вместо этого преобразователь значений должен полагаться на поведение обработки модуля записи XAML, которое будет передавать IAmbientProvider контексты службы в методы преобразователя значений при вызове.

Сценарии WPF для AmbientAttribute

  • Свойство Style (TargetType) может указать необходимые подстановки имен свойств, необходимые для поиска резервных ссылок для имен свойств в Setter.Property значениях.

  • Все содержимое в свойстве Resources (элементы ResourceDictionary) и содержимое шаблона должны иметь доступ к другим одноранговым узлам в качестве значений. Объявление всего Resources свойства как окружения вызывает логику, которая включает это в средстве синтаксического анализа XAML WPF.

См. ResourceDictionary пример сценария настройки AmbientAttribute на уровне типа.

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

AmbientAttribute()

Инициализирует новый экземпляр класса AmbientAttribute.

Свойства

TypeId

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

(Унаследовано от Attribute)

Методы

Equals(Object)

Возвращает значение, показывающее, равен ли экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код данного экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

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

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

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

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

См. также раздел