Aracılığıyla paylaş


Satır içi Stiller ve Şablonlar

Windows Presentation Foundation (WPF), bir öğenin kaynaklardaki görsel görünümünü tanımlamanın bir yolu olarak Style nesneleri ve şablon nesnelerini (FrameworkTemplate alt sınıflar) sağlar, böylece bunlar birden çok kez kullanılabilir. Bu nedenle, XAML'de Style ve FrameworkTemplate türlerini alan öznitelikler, satır içinde yenilerini tanımlamak yerine neredeyse her zaman mevcut stil ve şablonlara kaynak başvuruları yapar.

Satır içi Stillerin ve Şablonların Sınırlamaları

Genişletilebilir Uygulama Biçimlendirme Dili'nde (XAML), stil ve şablon özellikleri teknik olarak iki yoldan biriyle ayarlanabilir. Kaynak içinde tanımlanmış bir stile başvurmak için öznitelik sözdizimini kullanabilirsiniz, örneğin myResourceKeynesnesi. İsterseniz, satır içi stil tanımlamak için özellik öğesi söz dizimlerini de kullanabilirsiniz, örneğin:

< nesne>

< nesne.Style>

< Style .../>

</ nesne.Style>

</ nesne>

Öznitelik kullanımı çok daha yaygındır. Satır içinde tanımlanan ve kaynaklarda tanımlanmayan bir stilin kapsamı yalnızca içeren öğe olarak belirlenmiştir ve kaynak anahtarı olmadığından bu kadar kolay bir şekilde yeniden kullanılamaz. Genel olarak, kaynak tanımlı bir stil daha çok yönlü ve kullanışlıdır ve koddaki program mantığını işaretlemedeki tasarımdan ayırmaya yönelik genel Windows Presentation Foundation (WPF) programlama modeli ilkesiyle devam eder.

Yalnızca bu stili veya şablonu o konumda kullanmayı amaçlasanız bile, genellikle satır içi stil veya şablon ayarlamak için bir neden yoktur. Stil veya şablon alabilen öğelerin çoğu, içerik özelliğini ve içerik modelini de destekler. Eğer stil veya şablonlama yoluyla oluşturduğunuz mantıksal ağacı yalnızca bir kez kullanıyorsanız, doğrudan işaretleme içinde bu içerik özelliğini karşılık gelen alt öğelerle doldurmanız daha da kolay olabilir. Bu, stil ve şablon mekanizmalarını tamamen atlar.

Nesne döndüren işaretleme uzantıları tarafından etkinleştirilen diğer söz dizimleri, stiller ve şablonlar için de mümkündür. Olası senaryolara sahip bu tür iki uzantı TemplateBinding ve Bindingiçerir.

Ayrıca bakınız