Aracılığıyla paylaş


DynamicResource Biçimlendirme Uzantısı

Bu değeri tanımlı bir kaynağa başvuru olarak erteleyerek herhangi bir XAML özellik özniteliği için bir değer sağlar. Bu kaynak için arama davranışı, çalışma zamanı aramasına benzer.

XAML Öznitelik Kullanımı

<object property="{DynamicResource key}" ... />  

XAML Özellik Öğesi Kullanımı

<object>  
  <object.property>  
    <DynamicResource ResourceKey="key" ... />  
  </object.property>  
</object>  

XAML Değerleri

Değer Tanım
key İstenen kaynağın anahtarı. Bu anahtar başlangıçta bir kaynak işaretlemede oluşturulduysa x:Key Yönergesi tarafından atandı veya kaynak kodda oluşturulduysa çağrılırken ResourceDictionary.Add parametre olarak key sağlandı.

Açıklamalar

A DynamicResource , ilk derleme sırasında geçici bir ifade oluşturur ve böylece istenen kaynak değerinin bir nesne oluşturmak için gerçekten gerekli olana kadar kaynaklar için aramayı erteler. Bu, XAML sayfası yüklendikten sonra olabilir. Kaynak değeri, geçerli sayfa kapsamından başlayarak tüm etkin kaynak sözlüklerine karşı anahtar aramasına göre bulunur ve derlemedeki yer tutucu ifadesiyle değiştirilir.

Önemli

Bağımlılık özelliği önceliği açısından ifade DynamicResource , dinamik kaynak başvurusunun uygulandığı konuma eşdeğerdir. Daha önce yerel değer olarak bir ifadeye sahip olan bir DynamicResource özellik için yerel bir değer ayarlarsanız, DynamicResource değeri tamamen kaldırılır. Ayrıntılar için bkz . Bağımlılık Özelliği Değeri Önceliği.

Bazı kaynak erişim senaryoları, StaticResource biçimlendirme uzantısının aksine özellikle için DynamicResource uygundur. ve StaticResource'nin göreli değerleri ve performans etkileri DynamicResource hakkında bir tartışma için bkz. XAML Kaynakları.

BelirtilenResourceKey, sayfanızda, uygulamanızda, kullanılabilir denetim temalarında ve dış kaynaklarda veya sistem kaynaklarında bir düzeyde x:Key Yönergesi tarafından belirlenen mevcut bir kaynağa karşılık gelir ve kaynak araması bu sırada gerçekleşir. Statik ve dinamik kaynaklar için kaynak arama hakkında daha fazla bilgi için bkz . XAML Kaynakları.

Kaynak anahtarı, XamlName Dilbilgisinde tanımlanan herhangi bir dize olabilir. Kaynak anahtarı, gibi Typediğer nesne türleri de olabilir. Type Anahtar, denetimlerin temalara göre nasıl şekillendirilebileceğinin temelidir. Daha fazla bilgi için bkz . Denetim Yazmaya Genel Bakış.

gibi FindResourcekaynak değerlerinin aranması için API'ler, tarafından DynamicResourcekullanılan kaynak arama mantığını izler.

Kaynağa başvurmanın alternatif bildirim temelli araçları StaticResource İşaretleme Uzantısıdır.

Öznitelik sözdizimi, bu işaretleme uzantısı ile kullanılan en yaygın sözdizimidir. Tanımlayıcı dizesinden DynamicResource sonra sağlanan dize belirteci, temel alınan DynamicResourceExtension uzantı sınıfının değeri olarak ResourceKey atanır.

DynamicResource nesne öğesi söz diziminde kullanılabilir. Bu durumda, özelliğin ResourceKey değerinin belirtilmesi gerekir.

DynamicResource özelliği bir property=value çifti olarak belirten ResourceKey ayrıntılı bir öznitelik kullanımında da kullanılabilir:

<object property="{DynamicResource ResourceKey=key}" ... />  

Ayrıntılı kullanım, genellikle birden fazla ayarlanabilir özelliğe sahip uzantılar için veya bazı özellikler isteğe bağlıysa yararlıdır. Gerekli olan tek bir ayarlanabilir özelliği olduğundan DynamicResource , bu ayrıntılı kullanım tipik değildir.

WPF XAML işlemci uygulamasında, bu işaretleme uzantısı için işleme sınıfı tarafından DynamicResourceExtension tanımlanır.

DynamicResource bir işaretleme uzantısıdır. Biçimlendirme uzantıları, genellikle öznitelik değerlerinin değişmez değerler veya işleyici isimleri dışına çıkma gereksinimi olduğunda ve bu gereksinim, belirli türler veya özellikler üzerine tür dönüştürücülerini koymaktan daha genel olduğunda uygulanır. XAML'deki tüm işaretleme uzantıları öznitelik söz diziminde { ve } karakterlerini kullanır. Bu, bir XAML işlemcisinin işaretleme uzantısının özniteliği işlemesi gerektiğini tanıdığı kuraldır. Daha fazla bilgi için bkz . biçimlendirme uzantıları ve WPF XAML.

Ayrıca bkz.