Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bağımlılık özellikleri için çerçeve özelliği meta veri seçeneklerini Windows Presentation Foundation (WPF) çerçeve düzeyinde ayarlayabilirsiniz. WPF sunum API'leri ve yürütülebilir dosyalar render ve veri bağlamayı ele aldığında, WPF çerçeve düzeyi ataması uygulanır. Sunu API'leri ve yürütülebilir dosyalar, bağımlılık özelliğinin FrameworkPropertyMetadata sorgular.
Önkoşullar
Bağımlılık özellikleri hakkında temel bilgilere sahip olduğunuz ve Bağımlılık Özelliklerine Genel Bakış'ı okuduğunuz varsayılmaktadır. Bu makaledeki örnekleri takip etmek için Genişletilebilir Uygulama biçimlendirme dili (XAML) hakkında bilgi sahibi olmanız ve WPF uygulamalarının nasıl yazabileceğinizi bilmeniz yardımcı olur.
Çerçeve özelliği meta veri kategorileri
FrameworkPropertyMetadata şu kategorilere ayrılır:
Bir öğenin düzenini etkileyen meta veriler, özellikle de AffectsArrange, AffectsMeasureve AffectsRender meta veri bayrakları. Bağımlılık özelliği uygulamanız görsel bir yönü etkiliyorsa ve sınıfınızda MeasureOverride veya ArrangeOverride uyguluyorsanız bu bayrakları ayarlayabilirsiniz.
MeasureOverrideveArrangeOverrideyöntemleri, uygulamaya özgü davranış ve işleme bilgilerini düzen sistemine sağlar.AffectsArrange,AffectsMeasureveyaAffectsRenderbir bağımlılık özelliğinin meta verilerindetrueolarak ayarlandığında ve geçerli değeri değiştiğinde WPF özellik sistemi, öğenin görsellerini geçersiz kılma isteği başlatarak yeniden çizim tetikler.Bir öğenin üst öğesinin düzenini etkileyen meta veriler, özellikle de AffectsParentArrange ve AffectsParentMeasure meta veri bayrakları. Bu bayrakları ayarlayan WPF bağımlılık özelliklerine örnek olarak FixedPage.Left ve Paragraph.KeepWithNextverilebilir.
Özellik değeri devralma meta verileri, özellikle Inherits ve OverridesInheritanceBehavior meta veri bayrakları. 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. Daha fazla bilgi için bkz. Özellik değeri kalıtımı.
Uyarı
Özellik değerleri bağlamında "devralır" terimi bağımlılık özelliklerine özgüdür ve türetilmiş türler aracılığıyla yönetilen kod türleri ve üye devralma ile doğrudan ilişkili değildir. Bağımlılık özellikleri bağlamında, alt öğelerin üst öğelerden bağımlılık özelliği değerlerini devralabileceği anlamına gelir.
Veri bağlama meta verileri, özellikle BindsTwoWayByDefault ve IsNotDataBindable meta veri bayrakları. Varsayılan olarak, WPF çerçevesindeki bağımlılık özellikleri tek yönlü bağlamayı destekler. Durum 'ı bildiren ve'in kullanıcı eylemiyle değiştirilebildiği özellikler için varsayılan olarak iki yönlü bağlamayı ayarlamayı göz önünde bulundurun, örneğin IsSelected. Ayrıca, kullanıcıların bir denetimden bir özelliğin iki yönlü bağlamayı uygulamasını beklediği durumlarda, varsayılan olarak iki yönlü bağlamayı ayarlamayı düşünün, örneğin TextBox.Text.
BindsTwoWayByDefaultyalnızca varsayılan bağlama modunu etkiler. Bağlamanın veri akışı yönünü düzenlemek için binding.modeayarlayın. Kullanım örneği olmadığında veri bağlamayı devre dışı bırakmak için IsNotDataBindablekullanabilirsiniz. Veri bağlamaları hakkında daha fazla bilgi için bkz. Veri bağlamaya genel bakış.Günlükleme meta verisi, özellikle de Journal meta veri bayrağı.
Journalbayrağının varsayılan değeri yalnızcatruegibi bazı bağımlılık özellikleri için SelectedIndex. Kullanıcı giriş denetimleri, değerleri depolanması gereken kullanıcı seçimlerini barındıran özellikler içinJournalbayrağını ayarlamalıdır.Journalbayrağı, WPF günlük oluşturma hizmetleri de dahil olmak üzere günlük kaydı destekleyen uygulamalar veya hizmetler tarafından okunur. Gezinti adımlarını depolama hakkında bilgi için bkz . Gezintiye genel bakış
FrameworkPropertyMetadata, doğrudan UIPropertyMetadata'den türetilmiştir ve burada tartışılan bayrakları uygular. Özellikle ayarlanmadığı sürece, FrameworkPropertyMetadata bayrakları varsayılan falsedeğerine sahiptir.
FrameworkPropertyMetadata'yi Okuma
Bir bağımlılık özelliğinin meta verilerini almak için GetMetadata tanımlayıcıda DependencyProperty çağırın.
GetMetadata çağrısı bir PropertyMetadata nesnesi döndürür. Çerçeve meta veri değerlerini sorgulamak için PropertyMetadata'u FrameworkPropertyMetadata'e dönüştürmeniz gerekiyorsa.
FrameworkPropertyMetadata Belirleme
Bağımlılık özelliğini kaydettiğinizde, buna meta veri oluşturma ve atama seçeneğiniz vardır. Atadığınız meta veri nesnesi PropertyMetadata veya FrameworkPropertyMetadatagibi türetilmiş sınıflarından biri olabilir. WPF sunu API'lerini ve işleme ve veri bağlama için yürütülebilir dosyaları kullanan bağımlılık özellikleri için FrameworkPropertyMetadata seçin. Daha gelişmiş bir seçenek, daha fazla işaret içeren özelleştirilmiş bir meta veri raporlama sınıfı oluşturmak için FrameworkPropertyMetadata'dan türetmektir. Öte yandan, UIPropertyMetadata kullanıcı arabirimi işlemeyi etkileyen çerçeve dışı özellikler için de kullanabilirsiniz.
Meta veri seçenekleri genellikle yeni bir bağımlılık özelliğinin kaydı sırasında ayarlanmış olsa da, bunları OverrideMetadata veya AddOwner çağrılarında yeniden belirtebilirsiniz. Meta verileri geçersiz kılarken, her zaman özellik kaydı sırasında kullanılan meta veri türüyle geçersiz kılın.
FrameworkPropertyMetadata tarafından gösterilen özellikler bazen bayrakları olarak adlandırılır.
FrameworkPropertyMetadata örneği oluşturuyorsanız bayrak değerlerini doldurmanın iki yolu vardır:
FrameworkPropertyMetadataOptions numaralandırma türünün bir örneğinde bayrakları ayarlayın.
FrameworkPropertyMetadataOptions, meta veri bayraklarını bit düzeyinde OR bileşiminde belirtmenize olanak tanır. Öncelikle,FrameworkPropertyMetadataparametresi olan bir oluşturucu kullanarakFrameworkPropertyMetadataOptionsörneğini oluşturun ve ardındanFrameworkPropertyMetadataOptionsörneğinizi girin.FrameworkPropertyMetadataOptionsFrameworkPropertyMetadata oluşturucusuna geçirildikten sonra meta veri bayraklarını değiştirmek için, yeniFrameworkPropertyMetadataörneğinde ilgili özelliği değiştirin. Örneğin, FrameworkPropertyMetadataOptions.NotDataBindable bayrağını ayarlarsanız, FrameworkPropertyMetadata.IsNotDataBindablefalseolarak ayarlayarak bunu geri alabilirsiniz.FrameworkPropertyMetadataparametresi olmayan bir oluşturucu kullanarakFrameworkPropertyMetadataOptionsörneği oluşturup Booleanüzerinde uygunFrameworkPropertyMetadatabayraklarını ayarlayın.FrameworkPropertyMetadataörneğinizi bağımlılık özelliğiyle ilişkilendirmeden önce bayrak değerlerini ayarlayın; aksi takdirde bir InvalidOperationExceptionalırsınız.
Meta veriyi geçersiz kılma davranışı
Çerçeve özelliği meta verilerini geçersiz kıldığınızda, değiştirilen meta veri değerleri özgün değerlerin yerini alır veya bunlarla birleştirilir:
PropertyChangedCallbackiçin, varsayılan birleştirme mantığı bir tablodaki önceki
PropertyChangedCallbackdeğerlerini korur ve tümü bir özellik değişikliğinde çağrılır. Geri çağırma sırası, hiyerarşideki temel sınıf tarafından kaydedilen bir geri çağırmanın ilk olarak çalıştırıldığı sınıf derinliğine göre belirlenir. Devralınan geri çağırmalar yalnızca bir kez çalıştırılır ve bunları meta veriye ekleyen sınıfa aittir.DefaultValueiçin, yeni değer mevcut varsayılan değerin yerini alır. Geçersiz kılma meta verilerinde bir
DefaultValuebelirtmezseniz ve var olan FrameworkPropertyMetadataInheritsbayrağı ayarlanmışsa, varsayılan değer meta verilerdeDefaultValuebelirten en yakın üst değerden gelir.CoerceValueCallbackiçin, yeni değer mevcut bir
CoerceValueCallbackdeğerinin yerini alır. Geçersiz kılma meta verilerinde birCoerceValueCallbackbelirtmezseniz, değer miras zincirindeCoerceValueCallbackbelirten en yakın üstten gelir.Devralınmayan
FrameworkPropertyMetadatabayraklar için, varsayılanfalsedeğerinitruedeğerle geçersiz kılabilirsiniz. Ancak,truedeğerini yalnızcafalse, Inherits, Journalve OverridesInheritanceBehavioriçin SubPropertiesDoNotAffectRender değeriyle geçersiz kılabilirsiniz.
Uyarı
Varsayılan birleştirme mantığı Merge yöntemi tarafından uygulanır. Bağımlılık özelliğini devralan türetilmiş bir sınıfta özel birleştirme mantığı belirtmek için, bu sınıfta Merge metodunu geçersiz kılabilirsiniz.
Ayrıca bakınız
- PropertyMetadata
- GetMetadata
- OverrideMetadata
- AddOwner
- Bağımlılık Özelliği Meta Verisi
- Bağımlılık Özelliklerine Genel Bakış
- Özel Bağımlılık Özellikleri
.NET Desktop feedback