微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – toolStrip有menuStrip渐变背景

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

解决方法

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

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;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐