gpt4 book ai didi

c# - Visual Studio 的属性面板中带有子属性的自定义属性

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:22 24 4
gpt4 key购买 nike

我一直没能找到这方面的文档,主要是因为我不知道确切要搜索什么。但是我之前已经看到它是如何以某些方式完成的,所以我能够在 Visual Studio 的属性 Pane 中显示一些属性,但是我现在需要在属性 Pane 中添加一个带有子属性的属性。我现在回到原点 - 不知道要搜索什么,也无法实现它,因为我找不到相关信息。

在大多数控件的“属性” Pane 中,您会看到:

外观

  • 背景颜色
  • 前景色
  • 字体
    • 字体系列
    • 字体大小等

我已经可以做到了:

外观

  • 背景颜色
  • 前景色
  • 万岁!颜色

但是,现在我需要有类似默认 Font 属性的东西(添加一个属性,然后具有可展开/折叠的子属性,如下所示:

enter image description here

目前,我知道在 VS 的属性 Pane 中获取自定义属性的唯一方法是执行如下操作:

public Boolean isBaeltazorAwesome { get; set; }

这将在属性 Pane 中显示单个属性。但我需要如下图所示的内容,您可以在其中展开 Font 属性并获得一些更多可编辑的子属性。

如何做到这一点?

我知道寻找引用资料/站外资源是“题外话”,但如果您知道任何内容,如果您能分享,我将不胜感激。当我不知道使用什么术语时,我不知道如何搜索某些东西。这是奇怪还是什么?

最佳答案

您可以尝试为自定义属性的类型声明定义 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
}

参见示例:Implementing TypeConverter for Windows Forms

关于c# - Visual Studio 的属性面板中带有子属性的自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25957685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com