1

我需要在我的应用程序的菜单条下方直接显示一个工具条,但是为每个设置 RenderMode = Professional 并不会给出相同的结果。它们都显示背景渐变,但不是同一个。

有没有办法为工具条使用菜单条渲染,反之亦然?或者有人可以建议如何最好地自己实现渐变,我可以在子类渲染器中执行?

稍后添加: 非常感谢nobugz在下面的回答。有用的材料也在这个答案中。
还有一个问题——如果我将自定义渲染器基于 ToolStripProfessionalRenderer 并覆盖 OnRenderToolstripBackground,我的 ToolStrip 上仍然会出现弯曲的右角,但不会出现在 MenuStrip 上。是否有一些内部逻辑为后台渲染器填充提供不同的区域?我已经关闭(用无操作函数覆盖)边框渲染器。

4

2 回答 2

1

我没有看到它,但可以想象这是一个问题。覆盖渲染器,使其对菜单项和工具条项使用相同的背景渲染器:

Public Class Form1
    Public Sub New()
        InitializeComponent()
        MenuStrip1.Renderer = New MyRenderer()
    End Sub

    Private Class MyRenderer
        Inherits ToolStripProfessionalRenderer
        Protected Overrides Sub OnRenderItemBackground(ByVal e As ToolStripItemRenderEventArgs)
            MyBase.OnRenderMenuItemBackground(e)
        End Sub
    End Class
End Class
于 2009-11-18T22:18:57.453 回答
0

您可以使用 , 将两个面板停靠DockStyle.Top在一起,然后为每个面板添加一个MenuStrip。我在我的应用程序上做了同样的事情,我需要一些MenuStrips在相当异国情调的地方。如果您为它们使用连续背景,它可以产生良好的效果。

于 2013-07-30T11:43:59.810 回答