Düz PropertyMetadata üzerinden FrameworkPropertyMetadata veya UIPropertyMetadata'yı ne zaman kullanmalıyım?


82

Örneklere ekli özelliklere ve davranışlara bakarken FrameworkPropertyMetadata, UIPropertyMetadatave kullanımlarının karışık olduğunu gördüm PropertyMetadata. Hepsi bir miras hiyerarşisi oluşturduğundan hangisini kullanacağımı nasıl seçerim?

Yanıtlar:


81

Bu sınıflar, bir bağımlılık özelliğinin bazı davranış yönlerini bildirmek içindir.

Sağladıkları seçenekler için farklı sınıfları kontrol edin.

Örneğin,

bir özelliği sadece dp ile yedeklemek ve varsayılan bir değer sağlamak istiyorsanız, şunu kullanın PropertyMetadata:

animasyon davranışını belirtmek istiyorsanız, şunu kullanın UIPropertyMetadata:

ancak bazı özellikler wpf çerçeve düzeyi öğelerini etkiliyorsa, örneğin öğe düzeni, ana sayfa düzeni veya veri bağlama, kullanın FrameworkPropertyMetadata.

Msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx adresinden kontrol edebileceğiniz ayrıntılar


2
Asıl soru, propdp snippet'in neden UIPropertyMetadata'yı kullandığı, özellikle de Silverlight'ta hiçbir PropertyMetadata alt sınıfı olmadığı için? Beni deli ediyor.
Grank

6
Bunun nedeni, aynı parçacıkların WPF ve Silverlight arasında paylaşılmasıdır. Silverlight için bu bağlantıdan farklı parçacıklar deneyebilirsiniz: blog.nerdplusart.com/archives/silverlight-code-snippets
gp.

2
MSDN, "Genel olarak, özellikle mülkünüzün özellik sistemi ve düzen ve veri bağlama gibi WPF işlevleriyle herhangi bir etkileşimi varsa, FrameworkPropertyMetadata kullanmalısınız" diyor. - (Meta Verileri Belirtme) msdn.microsoft.com/en-us/library/ms751554.aspx
Wayne Bloss

FrameworkPropertyMetadata ne tür bir veri bağlama için kullanılmalıdır? Ben sadece bir denetimin IsEnabled'e bağlı bir özelliği istiyorum.
Monstieur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.