toolStrip 具有 menuStrip 渐变背景

Pau*_*ulK 5 c# toolbar menustrip winforms

我有一个表单,顶部有一个菜单和一个工具条。menuStrip 有一个漂亮的渐变背景,如何在 toolStrip 控件上获得相同的效果?我了解 RenderMode 属性,但更改此属性不会产生所需的结果。

工具条背景

gan*_*way 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

public Form1()
{
    InitializeComponent();

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

    toolStrip1.Renderer = r;
}
Run Code Online (Sandbox Code Playgroud)