ToolStripProfessionalRenderer.OnRenderItemBackground 是做什么的?

What does ToolStripProfessionalRenderer.OnRenderItemBackground do?

我正在编写自定义 ToolStripProfessionalRenderer 组件,目前正在处理所有 OnRender... 覆盖。

这个特别难倒我:OnRenderItemBackground

我看不到它绘制任何东西,所以为了强制它绘制一些东西,我已经这样做了:

protected override void OnRenderItemBackground(ToolStripItemRenderEventArgs e)
{
    e.Graphics.FillRectangle(Brushes.Red, e.Item.ContentRectangle);
}

...但我没有看到任何红色矩形,所以不确定它在做什么!?

您可以使用设计器添加的所有常用 ToolStripItem 都已经渲染了它们自己的背景。因此,您使用 OnRenderItemBackground() 重写绘制的内容会立即再次重绘。因此 ProfessionalToolStripRender 不会覆盖该方法,因为无需执行任何操作。基础 class 方法 ToolStripRender.OnRenderItemBackground() 也不做任何事情。

注意 OnRenderButtonBackground()、OnRenderDropDownButtonBackground()、OnRenderLabelBackground() 等。