在.Net 中,如何使上下文菜单项的高度不固定(即缩放到特定项目的大小)?

bla*_*k3r 5 .net contextmenu menuitem winforms

请参阅下面的两张图片。我不希望菜单中的每个项目都是最大的高度。它的大小应该适合内容。我尝试过许多属性,但无法阻止这种行为。是否可以?

所需高度
(来源:blakerobertson.com

适合所有人的固定高度!
(来源:blakerobertson.com

ito*_*son 2

将MenuItem.OwnerDraw设置为 true,然后处理MenuItem.MeasureItem事件。这允许您告诉 Windows 窗体该菜单项的大小,而与其他菜单项的大小无关,尽管代价是必须自己渲染该菜单项。

请注意,这不会导致自动调整大小:您将需要使用 GDI+ 函数来计算所需的大小。