IAmbientProvider 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
앰비언트 속성 또는 앰비언트 형식에 대한 정보 항목을 형식 변환기 및 태그 확장에 반환할 수 있는 서비스를 나타냅니다.
public interface class IAmbientProvider
public interface IAmbientProvider
type IAmbientProvider = interface
Public Interface IAmbientProvider
설명
이 인터페이스는 형식 변환기 및 태그 확장이 XAML 형식 시스템(XamlMember 개체)에 대한 앰비언트 속성 식별자를 가져오는 데 도움이 되는 서비스를 나타냅니다. 서비스는 클래스에서 앰비언트 속성 값을 가져올 수도 있습니다. 형식은 앰비언트일 수도 있습니다. 해당 형식을 해당 값으로 사용하는 멤버는 앰비언트로 간주되어야 합니다.
이 서비스는 일반적으로 컨텍스트별 서비스 공급자에 GetService대해 수행되는 호출을 통해 반환됩니다. 서비스 공급자는 일반적으로 값 변환기의 실행 코드와 같이 필요한 컨텍스트에서 사용할 수 있습니다. 자세한 내용은 Type Converters and Markup Extensions for XAML 하 고 Service Contexts Available to Type Converters and Markup Extensions합니다.
앰비언트 속성 정보
앰비언트 속성은 XAML 노드 구조와 이 구조체에서 만든 개체 그래프에 있는 형식 변환기 및 태그 확장 사용에 속성 값을 사용할 수 있어야 하는 속성입니다. 이는 로드 경로의 개체 작성 단계 또는 저장 경로의 serialization 단계 중 XAML 프로세서와 관련이 있습니다.
로드 경로의 경우 앰비언트 속성 값은 XAML 노드 구조에서 그 아래에 있는 다른 속성의 개체 그래프 값에 영향을 줄 수 있습니다. XAML 노드 스트림으로 처리되는 경우 앰비언트 개념은 형식 변환기 및 태그 확장에서 StartObject
EndObject
앰비언트 속성 값을 사용할 수 있어야 함을 의미합니다. 마찬가지로, 저장 경로에 사용되는 형식 변환기는 앰비언트 속성 및 해당 값에 대한 지식을 사용할 수 있습니다. 따라서 생성 되는 XAML에는 더 나은 라운드트립 표현입니다.
일반적으로 멤버의 경우 XAML은 개체의 멤버를 처리해야 하는 순서를 지정하지 않습니다. 그러나 다른 속성에 포함된 형식 변환기 및 태그 확장 사용이 서비스를 통해 IAmbientProvider 액세스할 수 있도록 앰비언트 속성 값을 XAML 판독기에서 먼저 처리해야 합니다.
DependsOn 또한 XAML 노드 처리 순서에 영향을 주는 이와 비슷한 개념 이며 그러나 DependsOn 피어 노드 및 멤버 관계; 에서만 사용할 수 있습니다 모든 하위 항목에는 영향을 줄 수 없습니다. DependsOn 또한 개체 그래프 속성 설정에 직접적인 영향을 주지만 앰비언트 기술은 형식 변환기 또는 태그 확장을 사용합니다. 앰비언트 기술에서는 앰비언트 속성 값을 해석하고 개체에 적용하는 방법을 지정하는 특정 형식 변환기 또는 태그 확장 정의도 있어야 합니다.
WPF 사용 정보
WPF 기능 집합에 설명된 앰비언트 속성 시나리오는 Style.TargetType다른 값에 필요한 속성 이름 조회를 한정할 수 있는 것입니다. 이 경우 값은 Style.TargetType 그 아래에 있는 XAML 노드에 있는 값을 한정 Setter.Property 합니다. Setter.Property 에 대 한 형식 변환기의 동작을 사용 하는 DependencyProperty합니다. 이 동작은 액세스 앰비언트 Style.TargetType 쿼리하여 값 GetFirstAmbientValue 형식 변환기 및 태그 확장에 사용할 수 있는 서비스 컨텍스트에서 합니다.
WPF 기능 집합에 설명된 앰비언트 형식 시나리오는 다음과 같이 ResourceDictionary표시됩니다. ResourceDictionary 에는 MergedDictionaries 병합할 다른 ResourceDictionary 개체를 포함할 수 있는 속성이 있으며 병합된 시나리오에 대한 의도된 리소스 확인 순서가 형식이 로드되는 순서와 충돌합니다. ResourceDictionaryAmbientAttribute XAML 프로세서가 병합된 사전의 참조를 사용법으로 StaticResource
올바르게 처리할 수 있도록 적용됩니다. 특히 태그 StaticResource
확장입니다. 이 확장은 을 호출합니다 GetAllAmbientValues.
메서드
GetAllAmbientValues(IEnumerable<XamlType>, Boolean, IEnumerable<XamlType>, XamlMember[]) |
요청된 형식 및 속성 집합에 대해 앰비언트 속성 정보 항목의 열거 가능한 집합을 반환합니다. |
GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[]) |
요청된 속성 집합에 대해 앰비언트 속성 정보 항목의 열거 가능한 집합을 반환합니다. |
GetAllAmbientValues(XamlType[]) |
요청된 형식에 대해 가능한 앰비언트 형식의 열거 가능한 개체 인스턴스 집합을 반환합니다. |
GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[]) |
어떠한 속성이 먼저 발견되는지를 기준으로 요청된 속성 집합에서 단일 앰비언트 속성 정보 항목을 반환합니다. |
GetFirstAmbientValue(XamlType[]) |
요청된 형식에 대해 가능한 앰비언트 형식인 첫 번째 일치 개체를 반환합니다. |