Çerçeve Özelliği Meta Verileri

Windows Presentation Foundation (WPF) mimarisinde WPF çerçeve düzeyinde olduğu kabul edilen nesne öğelerinin özellikleri için çerçeve özelliği meta veri seçenekleri bildirilir. Genel olarak WPF çerçeve düzeyi ataması işleme, veri bağlama ve özellik sistemi iyileştirmeleri gibi özelliklerin WPF sunu API'leri ve yürütülebilir dosyaları tarafından işlenmesini gerektirir. Çerçeve özellik meta verileri, belirli öğe özelliklerinin özelliğe özgü özelliklerini belirlemek için bu sistemler tarafından sorgulanır.

Ön koşullar

Bu konu başlığında, Windows Presentation Foundation (WPF) sınıflarında var olan bağımlılık özelliklerinin tüketicisi açısından bağımlılık özelliklerini anladığınız ve Bağımlılık Özelliklerine Genel Bakış'ı okuduğunuz varsayılır. Bağımlılık Özelliği Meta Verileri'nin de okunması gerekir.

Framework Özellik Meta Verileri tarafından İletilenler

Çerçeve özelliği meta verileri aşağıdaki kategorilere ayrılabilir:

  • Bir öğeyi (AffectsArrange, AffectsMeasure, AffectsRender) etkileyen raporlama düzeni özellikleri Özelliği ilgili yönleri etkiliyorsa ve ayrıca düzen sistemine belirli işleme davranışı ve bilgileri sağlamak için sınıfınızdaki yöntemleri uyguluyorsanız MeasureOverride / ArrangeOverride , meta verilerde bu bayrakları ayarlayabilirsiniz. Genellikle, böyle bir uygulama özellik meta verilerinde bu düzen özelliklerinden herhangi birinin doğru olduğu bağımlılık özelliklerinde özellik geçersiz kılmalarını denetler ve yalnızca bu geçersiz kılmalar yeni bir düzen geçişi istemeyi gerektirir.

  • Bir öğenin üst öğesini (AffectsParentArrange, AffectsParentMeasure) etkileyen raporlama düzeni özellikleri. Bu bayrakların varsayılan olarak ayarlandığı bazı örnekler ve Paragraph.KeepWithNextşeklindedirFixedPage.Left.

  • Inherits. Varsayılan olarak, bağımlılık özellikleri değerleri devralmaz. OverridesInheritanceBehavior devralma yolunun bazı denetim oluşturma senaryoları için gerekli olan görsel bir ağaca da seyahat etmesini sağlar.

    Dekont

    Özellik değerleri bağlamında "devralır" terimi, bağımlılık özelliklerine özgü bir şey anlamına gelir; bu, wpf özellik sisteminin WPF çerçeve düzeyi özelliği nedeniyle alt öğelerin üst öğelerden gerçek bağımlılık özellik değerini devralabileceği anlamına gelir. Yönetilen kod türü ve türetilmiş türler aracılığıyla üye devralma ile doğrudan hiçbir ilgisi yoktur. Ayrıntılar için bkz . Özellik Değeri Devralma.

  • Raporlama veri bağlama özellikleri (IsNotDataBindable, BindsTwoWayByDefault). Varsayılan olarak, çerçevedeki bağımlılık özellikleri tek yönlü bağlama davranışıyla veri bağlamayı destekler. Herhangi bir senaryo yoksa veri bağlamayı devre dışı bırakabilirsiniz (esnek ve genişletilebilir olmaları amaçlandığından, varsayılan WPF API'lerinde bu tür özelliklere çok fazla örnek yoktur). Bağlamayı, bir denetimin davranışlarını bileşen parçaları arasında bir araya getiren (IsSubmenuOpen örnektir) veya iki yönlü bağlamanın kullanıcılar için yaygın ve beklenen senaryo olduğu özellikler için iki yönlü bir varsayılan değere sahip olacak şekilde ayarlayabilirsiniz (Text örnektir). Veri bağlamayla ilgili meta verilerin değiştirilmesi yalnızca varsayılanı etkiler; varsayılan her zaman değiştirilebilir bağlama temelinde. Bağlama modları ve bağlama hakkında genel ayrıntılar için bkz . Veri Bağlamaya Genel Bakış.

  • Özelliklerin günlük kaydı () özelliğini destekleyen uygulamalar veya hizmetler tarafından günlüğe kaydedilip kaydedilmeyeceğini raporlamaJournal. Genel öğeler için günlük kaydı varsayılan olarak etkinleştirilmez, ancak belirli kullanıcı giriş denetimleri için seçmeli olarak etkinleştirilir. Bu özellik, günlük kaydı WPF uygulaması da dahil olmak üzere günlük hizmetleri tarafından okunması amaçlanmıştır ve genellikle gezinti adımları arasında kalıcı olması gereken listelerdeki kullanıcı seçimleri gibi kullanıcı denetimlerinde ayarlanır. Günlük hakkında bilgi için bkz . Gezintiye Genel Bakış.

Reading FrameworkPropertyMetadata

Yukarıda bağlanan özelliklerin her biri, öğesinin anlık temel sınıfına UIPropertyMetadataeklediği belirli özelliklerdirFrameworkPropertyMetadata. Bu özelliklerin her biri varsayılan olarak olacaktır false . Bu özelliklerin değerini bilmenin önemli olduğu bir özellik için meta veri isteği, döndürülen meta verileri FrameworkPropertyMetadataöğesine atamayı ve sonra gerektiğinde tek tek özelliklerin değerlerini denetlemeyi denemelidir.

Meta Verileri Belirtme

Meta verileri yeni bir bağımlılık özelliği kaydına uygulamak amacıyla yeni bir meta veri örneği oluşturduğunuzda, hangi meta veri sınıfını kullanacağınızı tercih edebilirsiniz: temel PropertyMetadata veya gibi FrameworkPropertyMetadatatüretilmiş bir sınıf. Genel olarak, özellikle özelliğinizin düzen ve veri bağlama gibi özellik sistemi ve WPF işlevleriyle herhangi bir etkileşimi varsa kullanmanız FrameworkPropertyMetadatagerekir. Daha karmaşık senaryolar için bir diğer seçenek de kendi meta veri raporlama sınıfınızı kendi üyelerinde taşınan ek bilgilerle oluşturmak için öğesinden FrameworkPropertyMetadata türetmektir. Ya da uygulamanızın özellikleri için destek derecesini iletmek için veya UIPropertyMetadata kullanabilirsinizPropertyMetadata.

Mevcut özellikler (AddOwner veya OverrideMetadata çağrı) için, her zaman özgün kayıt tarafından kullanılan meta veri türüyle geçersiz kılmanız gerekir.

Bir FrameworkPropertyMetadata örnek oluşturuyorsanız, bu meta verileri çerçeve özellik özelliklerini bildiren belirli özelliklere ilişkin değerlerle doldurmanın iki yolu vardır:

  1. Parametreye FrameworkPropertyMetadata izin veren flags oluşturucu imzasını kullanın. Bu parametre, numaralandırma bayraklarının istenen tüm birleşik değerleriyle FrameworkPropertyMetadataOptions doldurulmalıdır.

  2. parametre olmadan flags imzalardan birini kullanın ve ardından istenen her özellik değişikliği için her raporlama Boole özelliğini olarak FrameworkPropertyMetadata true ayarlayın. Bunu yaparsanız, bu bağımlılık özelliğine sahip öğeler oluşturmadan önce bu özellikleri ayarlamanız gerekir; Boole özellikleri, parametresinden kaçınma flags ve meta verileri doldurmaya devam etme davranışına izin vermek için okuma-yazma özelliğidir, ancak özellik kullanılmadan önce meta verilerin etkili bir şekilde mühürlenmesi gerekir. Bu nedenle, meta veriler istendikten sonra özellikleri ayarlamaya çalışmak geçersiz bir işlem olacaktır.

Framework Özelliği Meta Veri Birleştirme Davranışı

Çerçeve özelliği meta verilerini geçersiz kıldığınızda, farklı meta veri özellikleri birleştirilir veya değiştirilir.

Bu davranış tarafından Mergeuygulanır ve türetilmiş meta veri sınıflarında geçersiz kılınabilir.

Ayrıca bkz.