IAmbientProvider Arabirim

Tanım

Tür dönüştürücüleri ve işaretleme uzantılarını yazmak için ortam özellikleri veya ortam türleri hakkında bilgi öğeleri döndürebilen bir hizmeti temsil eder.

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

Açıklamalar

Bu arabirim, XAML türü sistemi (XamlMember nesneleri) için ortam özelliği tanımlayıcılarını almak için tür dönüştürücülerine ve işaretleme uzantılarına yardımcı olabilecek hizmeti temsil eder. Hizmet ayrıca sınıflardan ortam özelliği değerlerini de alabilir. Türler ortam da olabilir; değeri olarak bu türü kullanan herhangi bir üye ortam olarak kabul edilmelidir.

Bu hizmet genellikle bağlama özgü bir hizmet sağlayıcısında GetServiceyapılan çağrısı aracılığıyla döndürülür. Hizmet sağlayıcısı, bir değer dönüştürücüsünün yürütme kodu gibi ihtiyacı olan bağlamlar için genel olarak kullanılabilir. Daha fazla bilgi için bkz . XAML ve Hizmet Bağlamları için Tür Dönüştürücüleri ve İşaretleme Uzantıları Tür Dönüştürücüleri ve İşaretleme Uzantıları için Kullanılabilir.

Ortam Özellikleri Hakkında

Ortam özelliği, XAML düğüm yapısında ve ondan oluşturulan nesne grafında bulunan tür dönüştürücüsü ve işaretleme uzantısı kullanımları için özellik değerinin kullanılabilir olması gereken bir özelliktir. Bu, yük yolunun nesne yazma aşamasında veya bir kaydetme yolunun serileştirme aşamasında bir XAML işlemcisi için geçerlidir.

Yük yolu durumunda, ortam özelliği değeri, bir XAML düğüm yapısında altında bulunan diğer özelliklerin nesne grafiğindeki değeri etkileyebilir. Bir XAML düğümü akışı olarak işlendiğinde, ortam kavramı ortam özelliği değerinin tür dönüştürücüleri ve işaretleme uzantıları için 'den StartObject 'ye EndObjectkullanılabilir olması gerektiği anlamına gelir. Benzer şekilde, kaydetme yolu için kullanılan bir tür dönüştürücü ortam özelliği ve değeri bilgisini kullanabilir. Bu nedenle, üretilen XAML daha iyi bir gidiş dönüş gösterimidir.

Genel olarak üyeler için XAML, bir nesnenin üyelerinin işlenme sırasını belirtmez. Ancak, diğer özelliklerde yer alan tür dönüştürücüsü ve işaretleme uzantısı kullanımlarının hizmet üzerinden IAmbientProvider erişebilmesi için tüm ortam özellik değerlerinin önce XAML okuyucusu tarafından işlenmesi gerekir.

DependsOn , XAML düğüm işleme sırasını da etkileyen benzer bir kavramdır. Ancak, DependsOn yalnızca eş üye ve düğüm ilişkileri için kullanılabilir; tüm alt öğeleri etkileyemez. Ayrıca, DependsOn nesne grafı özellik ayarını doğrudan etkiler; ortam tekniği ise tür dönüştürücülerine veya işaretleme uzantılarına dayanır. Ortam tekniğinde, ortam özelliği değerinin nasıl yorumlanması ve nesneye uygulanması gerektiğini belirten belirli bir tür dönüştürücüsü veya işaretleme uzantısı tanımı da olmalıdır.

WPF Kullanım Notları

WPF özellik kümesinde gösterilen bir ortam özelliği senaryosu, Style.TargetTypediğer değerler için gerekli özellik adı aramalarını niteleyebilir. Bu durumda değer, Style.TargetType altındaki XAML düğümlerinde bulunan değerleri niteler Setter.Property . Setter.Property , için DependencyPropertytür dönüştürücü davranışını kullanır. Bu davranış, tür dönüştürücüleri ve işaretleme uzantıları için kullanılabilen bir hizmet bağlamından sorgulayarak GetFirstAmbientValue ortam Style.TargetType değerine erişir.

WPF özellik kümesinde gösterilen bir ortam türü senaryosudur ResourceDictionary. ResourceDictionarybirleştirilecek diğer ResourceDictionary nesneleri içerebilen bir MergedDictionaries özelliğe sahiptir ve birleştirilmiş senaryo için hedeflenen kaynak çözümleme sırası, türlerin yüklenme sırasıyla çakıştırılır. ResourceDictionaryAmbientAttribute bir XAML işlemcisinin kullanımlarla StaticResource birleştirilmiş bir sözlükteki başvuruları doğru işleyebilmesi için geçerlidir. Özellikle, StaticResource çağıran GetAllAmbientValuesbir işaretleme uzantısıdır.

Yöntemler

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

İstenen tür ve özellik kümesi için listelenebilir bir ortam özelliği bilgi öğeleri kümesi döndürür.

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

İstenen özellik kümesi için ortam özelliği bilgi öğelerinin listelenebilir bir kümesini döndürür.

GetAllAmbientValues(XamlType[])

İstenen türler için olası ortam türlerinin nesne örneklerinin listelenebilir bir kümesini döndürür.

GetFirstAmbientValue(IEnumerable<XamlType>, XamlMember[])

İstenen özellik kümesinden, ilk karşılaşılan özelliğe göre tek bir ortam özelliği bilgi öğesi döndürür.

GetFirstAmbientValue(XamlType[])

İstenen türler için olası bir ortam türü olan ilk eşleşen nesneyi döndürür.

Şunlara uygulanır

Ayrıca bkz.