在WinForms中,我可以将[Category]属性添加到自定义控件属性,以指定应包含属性的属性类别。我如何在WPF中做到这一点?感谢
答案 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团队here和here的Jim Nakashima撰写的博文。
有关文档,请参阅MSDN中的WPF Designer Extensibility。