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 ノード セットの作成のために中断されるプロパティです。 アンビエント概念には、次の 2 つのメインシナリオがあります。

  • 同じオブジェクトのその他のプロパティは、そのオブジェクト プロパティの参照のしくみに影響を与え、その動作を修飾します。

  • プロパティは、より大きな遅延メカニズムを表し、メンバー値を検索するためのアンビエント機能は、現在のオブジェクトに含まれるすべてのオブジェクトに拡張されます。

この属性は、アンビエント プロパティの参照動作を有効にするコンテナーが想定されている特定のプロパティに適用することも、プロパティの値型のすべてのケースでアンビエント プロパティの動作を有効にするためにクラスに適用することもできます。

AmbientAttribute また、XAML アタッチ可能なプロパティをアンビエントとして属性付けすることをサポートするために、CLR メソッドに適用することもできます。 CLR 実装では、XAML 添付プロパティが および メソッドを使用してアクセサー パターンgetsetとしてリフレクションに実装/表現されるため、これが必要になる可能性があります。 属性に対する実際の CLR プロパティは存在しないため、 のAttributeTargetsProperty使用を制限しても、アタッチ可能なメンバーをアンビエントとして指定することは有効になりません。 アンビエントとして報告するアタッチ可能なメンバーの場合は、アクセサーを属性付けします get 。 アタッチ可能なメンバーのメソッドを特にサポートしていないメソッドを属性付けしないでください。

以前のバージョンの.NET Frameworkでは、このクラスは WPF 固有のアセンブリ WindowsBase に存在しました。 .NET Framework 4 では、 AmbientAttribute は System.Xaml アセンブリ内にあります。 詳細については、「 Types Migrated from WPF to System.Xaml」を参照してください。

アンビエント型 (型 AmbientAttribute レベルで適用される型) は、プロパティの型を順に解決する必要がある特定の XAML 処理状況に使用できます。

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

XAML オブジェクト ライターを定義していて、 が適用されているプロパティ、メソッド、または型が AmbientAttribute 発生した場合は、通常、サービスにアクセスして、オブジェクトの書き込みに必要な目的のアンビエント プロパティ参照動作を決定する必要があります。 詳細については、「IAmbientProvider」を参照してください。

値コンバーター

型コンバーターまたはマークアップ拡張では、修飾の有無に関係なくメンバーまたは型を文字列名で指定するプロパティなど、間接型マッピングを表すプロパティを処理するために、アンビエント情報を知る必要がある場合があります。 このシナリオでは、 AmbientAttribute は、値コンバーター のコード ロジックに直接使用することを意図したものではありません。 代わりに、値コンバーターは XAML ライターの処理動作に依存する必要があります。これにより、呼び出されたときにサービス コンテキストが値コンバーター メソッドに渡 IAmbientProvider されます。

AmbientAttribute の WPF シナリオ

  • (TargetType) のプロパティは、値内のStyleプロパティ名のバッキング参照を検索するために必要なプロパティ名Setter.Propertyの参照を修飾できます。

  • プロパティ内 Resources のすべてのコンテンツ (の ResourceDictionary項目) とテンプレート コンテンツは、他のピアに値としてアクセスできる必要があります。 プロパティ全体 Resources をアンビエントとして宣言すると、WPF XAML パーサーでこれを有効にするロジックが呼び出されます。

型レベルで設定AmbientAttributeするシナリオの例を参照してくださいResourceDictionary

コンストラクター

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)

適用対象

こちらもご覧ください