Winforms PropertyGrid per-GridItem row height



我正在使用Winforms PropertyGrid;SelectedObject的目标包括类型为Image的属性。一切都很好,除了所有项目的高度相同,图像太小而无法正确看到。我想对网格项的高度进行一些控制,以便图像可以显示得更大一些。另一个细节是,一个PropertyGrid控件的SelectedObject可以分配各种不同类中的任何一个对象(可能具有也可能没有图像属性(,因此我希望高度可以由SelectedObject本身实例中的数据驱动,而不是使其成为控件的静态行为, 尽管我会满足于 image 属性的自定义属性,以使项目高度至少特定于类(如果它不能特定于实例(。

我该怎么做?自定义属性? PropertyGrid事件?别的?

正如 Simon 对您的问题的评论,这不可能为 GridItem 设置自定义高度。

您有 2 种解决方案可以显示合理大小的图像:

  1. 您可以编写自己的UITypeEditor。这样,用户只需单击向下箭头,即可在下拉框中看到大小合适的图像。

  2. 很抱歉插入,但我认为它直接回答了您的问题:只有第三方 PropertyGrid 可能允许您在网格中获取可变大小的行。智能 PropertyGrid.Net 就是其中之一。您将高度乘数设置为该行,以便它扩展,假设有 4 行。然后,编写自己的 Look 类,该类在此空间中以所需的方式处理图像的绘制。

最新更新