由于我不知道完全要搜索的内容,因此我无法找到相关文档。但我之前已经看过它是如何在某些方面完成的,所以我能够在Visual Studio的属性窗格中显示一些属性,但是我现在需要在属性窗格中添加一个带有子属性的属性。我现在回到原点 - 不知道要搜索什么,不能实现它,因为我找不到相关信息。
在大多数控件的“属性”窗格中,您将看到:
外观
我已经可以这样做了:
外观
但是,现在我需要像默认的Font属性一样(添加一个属性,但是具有可扩展/可折叠的子属性,如下所示:
目前,我知道在VS的属性窗格中获取自定义属性的唯一方法是执行以下操作:
public Boolean isBaeltazorAwesome { get; set; }
这将在属性窗格中显示单个属性。但我需要类似下图所示的内容,您可以在其中展开Font属性并获得更多可编辑的子属性。
如何做到这一点?
我知道寻找参考/非现场资源是"非主题",但如果你知道任何我会很感激,如果你可以分享。当我不知道要使用什么术语时,我根本不知道如何搜索某些内容。这有点奇怪吗?
答案 0 :(得分:1)
您可以尝试为自定义属性的类型声明定义TypeConverter
属性:
[TypeConverter(typeof(MyPropertyConverter))]
public struct MyProperty
{
...
}
public class MyPropertyConverter : TypeConverter
{
public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, Object value, Attribute[] attributes)
{
PropertyDescriptorCollection collection = TypeDescriptor.GetProperties(typeof(MyProperty));
// Reorganize the collection of sub-properties
return collection;
}
// overrides of the methods: CanConvertTo, ConvertTo, CanConvertFrom, ConvertFrom etc
}