IAmbientProvider インターフェイス

定義

型コンバーターおよびマークアップ拡張機能に、アンビエント プロパティまたはアンビエント型に関する情報アイテムを返すことのできるサービスを表します。

public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider

注釈

このインターフェイスは、型コンバーターとマークアップ拡張機能が XAML 型システム (XamlMember オブジェクト) のアンビエント プロパティ識別子を取得するのに役立つサービスを表します。 サービスは、クラスからアンビエント プロパティ値を取得することもできます。 型はアンビエントでもかまいません。その型を値として使用するメンバーは、アンビエントと見なす必要があります。

このサービスは通常、コンテキスト固有のサービス プロバイダーに GetService対して行われる呼び出しによって返されます。 サービス プロバイダーは、値コンバーターの実行コードなど、それを必要とするコンテキストで一般提供されます。 詳細については、「型コンバーターおよびマークアップ拡張機能」を参照してください。

アンビエント プロパティについて

アンビエント プロパティは、XAML ノード構造と、そこから作成されたオブジェクト グラフに存在する型コンバーターとマークアップ拡張機能の使用法で使用できるプロパティ値を持つプロパティです。 これは、読み込みパスのオブジェクト書き込みフェーズまたは保存パスのシリアル化フェーズ中の XAML プロセッサに関連します。

読み込みパスの場合、アンビエント プロパティの値は、XAML ノード構造でその下に存在する他のプロパティのオブジェクト グラフの値に影響を与える可能性があります。 XAML ノード ストリームとして処理される場合、アンビエントの概念は、アンビエント プロパティ値を型コンバーターとマークアップ拡張でStartObject``EndObject使用できる必要があります。 同様に、保存パスに使用される型コンバーターでは、アンビエント プロパティとその値に関する知識を使用できます。 したがって、生成される XAML は、より優れたラウンド トリップ表現です。

一般にメンバーの場合、XAML では、オブジェクトのメンバーを処理する必要がある順序は指定されません。 ただし、他のプロパティに含まれる型コンバーターとマークアップ拡張機能の使用法がサービスを介してアクセスできるように、XAML リーダーによってアンビエント プロパティ値を最初に処理する IAmbientProvider 必要があります。

DependsOn は、XAML ノード処理順序にも影響を与える同様の概念です。 ただし、 DependsOn ピア メンバーとノードのリレーションシップにのみ使用できます。すべての子孫に影響を与えることはできません。 また、 DependsOn オブジェクト グラフのプロパティ設定に直接影響します。一方、アンビエント手法は型コンバーターまたはマークアップ拡張に依存します。 アンビエント手法では、アンビエント プロパティ値を解釈してオブジェクトに適用する方法を指定する特定の型コンバーターまたはマークアップ拡張定義も必要です。

WPF の使用上の注意

WPF 機能セットに示されているアンビエント プロパティ シナリオは Style.TargetType、他の値に必要なプロパティ名の参照を修飾できるシナリオです。 この場合、値は Style.TargetType 、その下の Setter.Property XAML ノードにある値を修飾します。 Setter.Property の型コンバーターの動作を DependencyProperty使用します。 この動作は、型コンバーターとマークアップ拡張で使用できるサービス コンテキストからクエリをGetFirstAmbientValue実行することで、アンビエントStyle.TargetType値にアクセスします。

WPF 機能セットに示されているアンビエント型のシナリオは次の例です ResourceDictionaryResourceDictionary には、 MergedDictionaries マージする他 ResourceDictionary のオブジェクトを含めることができるプロパティがあり、マージされたシナリオのリソース解決の目的の順序は、型が読み込まれる順序と競合します。 ResourceDictionaryは、XAML プロセッサが結合されたディクショナリ内の参照を使用法でStaticResource正しく処理できるように適用AmbientAttributeされます。 具体的には、 StaticResource マークアップ拡張機能を呼び出します GetAllAmbientValues

メソッド

GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[])

要求された型とプロパティのセットに対するアンビエント プロパティ情報項目の列挙可能なセットを返します。

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

要求されたプロパティ セットに対するアンビエント プロパティ情報アイテムの列挙可能なセットを返します。

GetAllAmbientValues(XamlType[])

要求された型に対する使用可能なアンビエント型のオブジェクト インスタンスの列挙可能なセットを返します。

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

最初に検出されたプロパティに基づいて、要求されたプロパティ セットから単一のアンビエント プロパティの情報アイテムを返します。

GetFirstAmbientValue(XamlType[])

要求された型に対する使用可能なアンビエント型の最初に一致したオブジェクトを返します。

適用対象

こちらもご覧ください