设置WPF自定义控件的属性类别?

时间:2010-01-01 18:23:17

标签: wpf wpf-controls custom-controls

在WinForms中,我可以将[Category]属性添加到自定义控件属性,以指定应包含属性的属性类别。我如何在WPF中做到这一点?感谢

2 个答案:

答案 0 :(得分:16)

我发现你没有拥有来包含一个设计时DLL来将[Category]属性添加到自定义控件属性中。这是可以完成的一种方式,但实际上,您可以像在WinForms中一样使用任何.NET属性。例如:

/// <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); }
}

答案 1 :(得分:3)

您需要提供“元数据程序集”,也称为“设计时DLL”。这是一个与主程序集同名的程序集,附加了.Design(例如MyCompany.MyControls.Design.dll),并包含一个实现IRegisterMetadata的类。 IRegisterMetadata实现为主程序集中的各种组件构建一个属性表,并将其添加到MetadataStore。

有关完整信息和示例,请参阅Cider团队herehere的Jim Nakashima撰写的博文。

有关文档,请参阅MSDN中的WPF Designer Extensibility