toolStrip有menuStrip渐变背景

时间:2013-09-04 11:48:41

标签: c# winforms toolbar menustrip

我在顶部有一个带有菜单和工具条的表单。 menuStrip具有漂亮的渐变背景,如何在toolStrip控件上获得相同的效果?我知道RenderMode属性,但更改它没有所需的结果。

toolStrip background

1 个答案:

答案 0 :(得分:1)

您可以使用自定义渲染器实现此目的。

public class CustomToolStripRenderer : ToolStripProfessionalRenderer
{
    public CustomToolStripRenderer() { }

    protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
    {
        //you may want to change this based on the toolstrip's dock or layout style
        LinearGradientMode mode = LinearGradientMode.Horizontal;

        using (LinearGradientBrush b = new LinearGradientBrush(e.AffectedBounds, ColorTable.MenuStripGradientBegin, ColorTable.MenuStripGradientEnd, mode))
        {
            e.Graphics.FillRectangle(b, e.AffectedBounds);
        }
    }
}

然后设置工具条以使用此渲染器的实例。

public Form1()
{
    InitializeComponent();

    CustomToolStripRenderer r = new CustomToolStripRenderer();
    r.RoundedEdges = false;

    toolStrip1.Renderer = r;
}