Satır İçi Stil ve Şablonları
Windows Presentation Foundation (WPF)Style FrameworkTemplate birden çok kez kullanılabilmesi için kaynaklardaki bir öğenin görsel görünümünü tanımlamanın bir yolu olarak nesneler ve şablon nesneleri (alt sınıflar) sağlar. Bu nedenle, ' deki öznitelikler XAML türleri alır Style ve FrameworkTemplate neredeyse her zaman, satır içi yenilerini tanımlamak yerine var olan stillere ve şablonlara kaynak başvuruları yapar.
Satır Içi stiller ve şablonların sınırlamaları
Extensible Application Markup Language (XAML)' De, stil ve Şablon Özellikleri Teknik olarak iki şekilde ayarlanabilir. Öznitelik sözdizimini, bir kaynak içinde tanımlanmış bir stile başvurmak için kullanabilirsiniz, örneğin, < Style="{StaticResource myresourcekey nesnesi }" .../> . Ya da bir stil satır içi tanımlamak için özellik öğesi sözdizimini kullanabilirsiniz, örneğin:
<nesne>
<nesne.Style>
< Style .../>
</nesne.Style>
</nesne>
Öznitelik kullanımı çok daha yaygındır. Satır içi tanımlanmış ve kaynaklarda tanımlanmamış bir stil, yalnızca kapsayan öğe kapsamına alınır ve kaynak anahtarı olmadığından kolayca yeniden kullanılamaz. Genel olarak kaynak tanımlı bir stil daha çok yönlüdür ve yararlı olur ve Windows Presentation Foundation (WPF) kod içindeki program mantığını biçimlendirme içinde tasarımdan ayıran genel programlama modeli ilkesiyle birlikte tutulmaktadır.
Genellikle, söz konusu stili veya şablonu yalnızca o konumda kullanmak istiyorsanız bile, bir stil veya şablon satır içi ayarlamak için bir neden yoktur. Stil veya şablon alan çoğu öğe, içerik özelliğini ve bir içerik modelini de destekler. Yalnızca stil veya şablon oluşturma aracılığıyla oluşturduğunuz herhangi bir mantıksal ağacı kullanıyorsanız, doğrudan biçimlendirme içindeki bu içerik özelliğini yalnızca eşdeğer alt öğelerle doldurmanız daha da kolay olur. Bu, stili ve şablon mekanizmalarını tamamen atlar.
Bir nesne döndüren biçimlendirme uzantıları tarafından etkinleştirilen diğer sözdizimleri, stiller ve şablonlar için de mümkündür. Olası senaryolara sahip iki uzantı de TemplateBinding ve içerir Binding .