我正在使用Winforms PropertyGrid
;SelectedObject
的目标包括类型为Image
的属性。一切都很好,除了所有项目的高度相同,图像太小而无法正确看到。我想对网格项的高度进行一些控制,以便图像可以显示得更大一些。另一个细节是,一个PropertyGrid
控件的SelectedObject
可以分配各种不同类中的任何一个对象(可能具有也可能没有图像属性(,因此我希望高度可以由SelectedObject
本身实例中的数据驱动,而不是使其成为控件的静态行为, 尽管我会满足于 image 属性的自定义属性,以使项目高度至少特定于类(如果它不能特定于实例(。
我该怎么做?自定义属性? PropertyGrid
事件?别的?
正如 Simon 对您的问题的评论,这不可能为 GridItem 设置自定义高度。
您有 2 种解决方案可以显示合理大小的图像:
-
您可以编写自己的UITypeEditor。这样,用户只需单击向下箭头,即可在下拉框中看到大小合适的图像。
-
很抱歉插入,但我认为它直接回答了您的问题:只有第三方 PropertyGrid 可能允许您在网格中获取可变大小的行。智能 PropertyGrid.Net 就是其中之一。您将高度乘数设置为该行,以便它扩展,假设有 4 行。然后,编写自己的 Look 类,该类在此空间中以所需的方式处理图像的绘制。