2011-10-04 3 views
5

ayarı için onaylar arasındaki fark Özel bir denetim (Control'dan türetilen) oluşturmak ve denetim için varsayılan bir tema tanımlamak istiyorum. Oluşturduğum önce tüm özel denetimler, bu assembly özniteliği ileDefaultStyleKey

static IntegerUpDown() 
{ 
    DefaultStyleKeyProperty.OverrideMetadata(typeof(IntegerUpDown), 
    new FrameworkPropertyMetadata(typeof(IntegerUpDown))); 
} 

kullandık: Bu (Ayrıca bazı kontrollerde fark etmiş olan) yapmanın

[assembly: ThemeInfo(ResourceDictionaryLocation.SourceAssembly, 
ResourceDictionaryLocation.SourceAssembly)] 

Alternatif bir yaklaşım -

public IntegerUpDown() 
{ 
    DefaultStyleKey = typeof(IntegerUpDown); 
} 

Bu iki yaklaşımın artılarını ve eksilerini ve hangisini tercih etmeyi bilmek isterim?

cevap

3

İlk yaklaşımın, varsayılan stil anahtarını kaydettirmek için bağımlılık özelliği çerçevesini sorduğunu gözlemleyebilirim. Bunu sadece bir kez yapar (statik yapıcıda bulunur) ve daha sonra IntegerUpDown'un tüm örnekleri için kullanılır. İkinci yaklaşım, bir IntegerUpDown örneği kendi başına oluşturulduğunda anahtarı açıkça atar. İkisi de bana iyi görünüyor. MSDN diyor

...

alt sınıfları tamamen tesisin meta geçersiz tarafından bir DP'ye çimdik yerine böylece yeniden hayata özelliğini kendisi Meta veri geçersiz kılınabilir

.