2010-01-01 12 views

Respuesta

15

He descubierto que no tiene para incluir una DLL en tiempo de diseño para agregar un atributo [Category] a una propiedad de control personalizada. Esa es una manera en que se puede hacer, pero de hecho, puede usar cualquier atributo .NET tal como lo hizo en WinForms. Por ejemplo:

/// <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

Debe proporcionar un "conjunto de metadatos", también conocido como "DLL de tiempo de diseño". Este es un ensamblaje con el mismo nombre que su ensamblaje principal con .Design agregado (por ejemplo, MyCompany.MyControls.Design.dll) y contiene una clase que implementa IRegisterMetadata. La implementación IRegisterMetadata crea una tabla de atributos para los distintos componentes en su ensamblaje principal y la agrega a un MetadataStore.

Para obtener más información y ejemplos, consulte las publicaciones de blog de Jim Nakashima del equipo de Sidra here y here.

Para documentación, vea WPF Designer Extensibility en MSDN.

Cuestiones relacionadas