Aracılığıyla paylaş


IAmbientProvider Arabirim

Tanım

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 nesneler) 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, 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ı genellikle bir değer dönüştürücüsünün yürütme kodu gibi ihtiyacı olan bağlamlar tarafından kullanılabilir. Daha fazla bilgi için bkz . XAML için Tür Dönüştürücüleri ve İşaretleme Uzantıları ve Tür Dönüştürücüleri ve İşaretleme Uzantıları için Kullanılabilir Hizmet Bağlamları.

Ortam Özellikleri Hakkında

Ortam özelliği, özellik değerinin 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 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 örneğinde, 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 ile arasında StartObjectEndObjectdönüştürücüler ve işaretleme uzantıları yazmak için kullanı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 hakkında bilgi 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 sorgu yaparak 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ı ile çakıştırılır. ResourceDictionary AmbientAttribute bir XAML işlemcisinin birleştirilmiş bir sözlükteki başvuruları kullanımlarla StaticResource doğru bir şekilde işleyebilmesi için geçerlidir. Özellikle, StaticResource öğesini çağıran GetAllAmbientValuesbir işaretleme uzantısıdır.

Yöntemler

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

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

GetAllAmbientValues(IEnumerable<XamlType>, XamlMember[])

İstenen özellik kümesi için ortam özelliği bilgileri öğelerinin numaralandırılabilir bir kümesini döndürür.

GetAllAmbientValues(XamlType[])

İstenen türler için olası ortam türlerinin nesne örneklerinin numaralandırılabilir 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.