DynamicResource Biçimlendirme Uzantısı

Herhangi bir XAML özellik özniteliği için, bu değerin tanımlı bir kaynağa başvuru olarak erteleyerek 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

key İstenen kaynak için anahtar. Bu anahtar başlangıçta, biçimlendirme içinde bir kaynak oluşturulduysa veya ResourceDictionary.Add kaynak kodda oluşturulduysa çağrılırken parametre olarak sağlanmışsa, x:Key yönergesi tarafından atanır.

Açıklamalar

, DynamicResource İlk derleme sırasında geçici bir ifade oluşturur ve bu nedenle, istenen kaynak değeri gerçekten bir nesne oluşturmak için gerekli olana kadar kaynakları aramayı erteleyin. Bu, XAML sayfası yüklendikten sonra olabilir. Kaynak değeri, geçerli sayfa kapsamından başlayarak etkin olan tüm kaynak sözlüklerine karşı anahtar aramasına göre bulunur ve derlemeden yer tutucu ifadesinin yerine konur.

Önemli

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

Belirli kaynak erişim senaryoları, DynamicResource bir DynamicResourceaksine özellikle uygundur. Ve ' nin göreli birleşme ve performans etkileri hakkında bir tartışma için bkz. xaml kaynaklarıStaticResource .

Belirtilen geçerli ResourceKey bir kaynağa karşılık gelen ResourceKey , sayfanızda, uygulamanızda, kullanılabilir denetim temalarınızda ve dış kaynaklarda veya Sistem kaynaklarında, kaynak aramasının bu sırada gerçekleşecektir. Statik ve dinamik kaynaklar için kaynak arama hakkında daha fazla bilgi için bkz. xaml kaynakları.

Kaynak anahtarı XamlName dilbilgisindetanımlanmış herhangi bir dize olabilir. Kaynak anahtarı, gibi diğer nesne türleri de olabilir Type . Bir Type anahtar, denetimlerin temalar tarafından nasıl Stillenebilir. Daha fazla bilgi için bkz. Denetim yazma genel bakış.

Kaynak değerlerinin aranması için API 'Ler, gibi FindResource , tarafından kullanılan kaynak arama mantığını da izler DynamicResource .

Bir kaynağa başvuruda bulunan alternatif bildirime dayalı bir değer, bir StaticResource Işaretleme uzantısıolarak gelir.

Öznitelik sözdizimi, bu işaretleme uzantısı ile kullanılan en yaygın sözdizimidir. Tanımlayıcı dizeden sonra belirtilen dize belirteci, DynamicResourceResourceKey temel uzantı sınıfının değeri olarak atanır DynamicResourceExtension .

DynamicResource nesne öğesi söz dizimi içinde kullanılabilir. Bu durumda, özelliğinin değerini belirtmek ResourceKey gereklidir.

DynamicResource , özelliği ResourceKey özellik = değer çifti olarak belirten ayrıntılı bir öznitelik kullanımında de 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. , DynamicResource Gereken tek bir ayarlanabilir özelliğe sahip olduğundan, bu ayrıntılı kullanım tipik değildir.

WPF XAML işlemci uygulamasında, bu biçimlendirme uzantısının işlenmesi sınıfı tarafından tanımlanır DynamicResourceExtension .

DynamicResource bir biçimlendirme 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 biçimlendirme uzantıları öznitelik sözdiziminde {ve} karakterlerini kullanır. Bu, XAML işlemcisinin bir biçimlendirme uzantısının özniteliği işlemesi gerektiğini tanıdığı bir kuraldır. Daha fazla bilgi için bkz. Biçimlendirme uzantıları ve WPF XAML.

Ayrıca bkz.