2010-01-01 13 views

cevap

15

Özel bir denetim özelliğine [Kategori] özelliği eklemek için bir tasarım zamanı DLL'si eklemek üzere 'un içermediğini keşfettim. Bu yapılabilecek bir yoldur, ancak aslında, WinForms'ta yaptığınız gibi herhangi bir .NET özniteliğini kullanabilirsiniz. Örneğin:

/// <summary> 
/// The image displayed by the button. 
/// </summary> 
/// <remarks>The image is specified in XAML as an absolute or relative path.</remarks> 
[Description("The image displayed by the button."), Category("Common Properties")] 
public ImageSource Image 
{ 
    get { return (ImageSource)GetValue(ImageProperty); } 
    set { SetValue(ImageProperty, value); } 
} 
3

"Tasarım zamanı DLL'si" olarak da bilinen bir "meta veri derlemesi" sağlamanız gerekir. Bu, tasarıma eklenmiş olan .Design'a (örn. MyCompany.MyControls.Design.dll) sahip ana derlemenizle aynı adda ve IRegisterMetadata'yı uygulayan bir sınıf içeren bir derlemedir. IRegisterMetadata uygulaması, ana derlemenizdeki çeşitli bileşenler için bir öznitelik tablosu oluşturur ve bunu bir MetadataStore'a ekler.

Tüm bilgi ve örnekler için, Cider ekibinden Jim Nakashima'nın blog yayınlarına bakın here ve here.

Belgeler için bkz. WPF Designer Extensibility MSDN'de.