AmbientAttribute AmbientAttribute AmbientAttribute AmbientAttribute Class

定義

プロパティまたは型をアンビエントとして扱うように指定しています。Specifies that a property or type should be treated as ambient. アンビエントの概念は XAML プロセッサがメンバーの型の所有者を確認する方法と関連します。The ambient concept relates to how XAML processors determine type owners of members.

public ref class AmbientAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method | System.AttributeTargets.Property, Inherited=true)]
[System.AttributeUsage(System.AttributeTargets.Property, Inherited=true)]
public sealed class AmbientAttribute : Attribute
type AmbientAttribute = class
    inherit Attribute
Public NotInheritable Class AmbientAttribute
Inherits Attribute
継承
AmbientAttributeAmbientAttributeAmbientAttributeAmbientAttribute
属性

注釈

アンビエント プロパティは、即時の XAML ノードが作成されるセットのために一般的な型メンバーの参照が中断されているが、オブジェクト グラフを作成するときに、パーサー コンテキストで使用できる値が必要な場所のプロパティです。An ambient property is a property where the value is expected to be available in the parser context when creating an object graph, but where typical type-member lookup is suspended for purposes of the immediate XAML node set being created. アンビエントの概念の 2 つの主なシナリオがあります。There are two main scenarios for the ambient concept:

  • 同じオブジェクトのさまざまなプロパティは影響し、そのオブジェクトとプロパティ検索のしくみを修飾します。Some other property of the same object influences and qualifies how that object-property lookup should work.

  • プロパティは遅延の大きいメカニズムを表し、メンバー値を検索するためのアンビエント機能は、現在のオブジェクト内に含まれるすべてのオブジェクトに拡張します。The property represents a larger deferral mechanism and the ambient capabilities for looking up a member value extend to all objects contained within the current object.

この属性は、アンビエント プロパティの検索動作を有効にするコンテナーを必要とする特定のプロパティに適用できるか、プロパティの値型のすべてのケースでのアンビエント プロパティの動作を有効にするクラスに適用できます。This attribute can be applied to specific properties that have expected containers that enable an ambient property lookup behavior, or can be applied to a class to enable the ambient property behavior in all cases of that value type for a property.

AmbientAttribute XAML のアタッチ可能なプロパティをアンビエントとして属性設定をサポートするために、CLR メソッドにも適用できます。AmbientAttribute can also be applied to a CLR method, to support attributing a XAML attachable property as ambient. これは、CLR の実装を XAML で添付プロパティを実装/表されるでアクセサー パターンとしてリフレクションのために必要な可能性のあるgetsetメソッド。This is potentially necessary because in a CLR implementation a XAML attached property is implemented/represented to reflection as an accessor pattern with get and set methods. 属性に実際の CLR プロパティが存在しないための使用量を制限するAttributeTargetsPropertyが有効にしていないアンビエントとしてアタッチ可能なメンバーを指定することです。No actual CLR property to attribute exists, so restricting usage for AttributeTargets to Property would not have enabled specifying an attachable member as ambient. アンビエントとして報告するアタッチ可能なメンバー、属性、getアクセサー。For an attachable member that you want to report as ambient, attribute the get accessor. アタッチ可能なメンバーのサポート方法を具体的にはない属性のメソッドにはしないでください。You should not attempt to attribute methods that are not specifically support methods of attachable members.

.NET Framework の以前のバージョンでは、このクラスは、WPF 固有の WindowsBase アセンブリに存在します。In previous versions of the .NET Framework, this class existed in the WPF-specific assembly WindowsBase. .NET Framework 4.NET Framework 4AmbientAttributeは System.Xaml アセンブリにします。In .NET Framework 4.NET Framework 4, AmbientAttribute is in the System.Xaml assembly. 詳細については、「 Types Migrated from WPF to System.Xaml」を参照してください。For more information, see Types Migrated from WPF to System.Xaml.

アンビエント型 (型 whereAmbientAttribute型レベルで適用されます)、プロパティの型解決が必要誤順序の特定の XAML の処理状況のために使用できます。Ambient types (types where AmbientAttribute is applied at type level) can be used for certain XAML processing situations where the type of a property needs to be resolved out of order.

オブジェクト ライターのシナリオObject Writer Scenarios

XAML オブジェクト ライターを定義して、プロパティ、メソッドまたは型が発生した場合、AmbientAttributeが適用するには、通常必要がありますサービスにアクセスする、オブジェクトを記述するために必要な目的のアンビエント プロパティ検索の動作を決定します。If you are defining a XAML object writer, and you encounter a property, method or type where AmbientAttribute is applied, you typically must access a service to determine the intended ambient property lookup behavior that is needed for writing out objects. 詳細については、「 IAmbientProvider 」を参照してください。For more information, see IAmbientProvider.

値コンバーターValue Converters

型コンバーターまたはマークアップ拡張機能は、文字列名または修飾なしで、メンバーまたは型を指定するプロパティなどの間接的な型マッピングを表すプロパティを処理するために、アンビエント情報を把握する必要があります。Type converters or markup extensions might need to know the ambient information in order to process properties that represent indirect type mappings, such as properties that specify members or types by string names with or without qualification. このシナリオでAmbientAttribute値コンバーター コード ロジックに直接使用するものではありません。In this scenario, AmbientAttribute is not intended to be used directly for value converter code logic. XAML のライター処理動作が合格する必要があります、値コンバーターを利用ではなく、IAmbientProvider値コンバーターのメソッドが呼び出されたときにそのサービスのコンテキストでします。Rather, the value converter should rely on the XAML writer processing behavior, which will pass IAmbientProvider in its service contexts to your value converter methods when called.

AmbientAttribute の WPF のシナリオWPF Scenarios for AmbientAttribute

  • プロパティをStyle(TargetType) のプロパティ名のバッキングの参照を検索するために必要なために必要なプロパティ名の参照を修飾できますSetter.Property値。A property of a Style (TargetType) can qualify the necessary property name lookups that are needed to find the backing references for property names in Setter.Property values.

  • 内のすべてのコンテンツをResourcesプロパティ (の項目をResourceDictionary) テンプレートの内容とする必要がありますにアクセスできる他のピアとして値。All content within a Resources property (items of a ResourceDictionary) as well as template content, should be able to access other peers as values. 全体を宣言するResourcesプロパティをアンビエントとしては、WPF XAML パーサーでこのようにするロジックを呼び出します。Declaring the entire Resources property as ambient invokes logic that enables this in the WPF XAML parser.

参照してくださいResourceDictionary設定用のシナリオ例についてはAmbientAttribute型レベル。See ResourceDictionary for an example of a scenario for setting AmbientAttribute at type level.

コンストラクター

AmbientAttribute() AmbientAttribute() AmbientAttribute() AmbientAttribute()

AmbientAttribute クラスの新しいインスタンスを初期化します。Initializes a new instance of the AmbientAttribute class.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(Inherited from Attribute)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object) Match(Object) Match(Object) Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

プロパティ

TypeId TypeId TypeId TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

適用対象

こちらもご覧ください