我正在使用 PropertyGrid 来显示通过实现 ICustomTypeDescriptor 公开的自定义属性。
我的对象设置在树结构中,每个属性的值要么在每个对象中设置,要么从父对象继承。在 PropertyGrid 中,我想直观地向用户显示在所选对象中设置了哪些属性值,以及哪些属性值是从父对象继承的。
现在我将每个属性显示为两个类别。一组显示在实际对象中设置的值,如果未设置则为空白字段。另一组显示分配给对象的属性值,这些属性值要么在对象中设置,要么在对象中未设置时继承。
我想将这两组组合成一个购买,以常规文本显示设置属性,并以斜体文本显示继承值。但是,似乎没有任何方法可以通过 ICustomTypeDescriptor.GetProperties() 来做到这一点。而且我无法轻松访问 PropertyGrid 的属性,因为它们是在程序运行时创建的。
最佳答案
你不能做斜体——但你可以做粗体;粗体行为由 PropertyDescriptor
的 ShouldSerializeValue
决定;您可以通过各种 System.ComponentModel
技巧(ICustomTypeDescriptor
、TypeConverter
或 TypeDescriptionProvider
包装 PropertyDescriptor
code>) 并提供您自己的 PropertyDescriptor
。
或者,有更多选项的类似网格,例如by VisualHint - 请参阅该页面上的“属性自定义”。
关于c# - PropertyGrid 中的斜体文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/744999/