如何在ToolStrip Winforms控件的角落删除这个奇怪的视觉神器?

Joa*_*nge 13 .net c# toolstrip styling winforms

这是显示问题的图片.看看右下角.

谁知道如何摆脱它?

设置LayoutStyleVerticalStackWithOverflow修复它,但也将项目水平居中,这是我不想要的.

我只想要像照片中的垂直堆栈,但右下角没有黑色线条.

在此输入图像描述

2To*_*oad 13

很抱歉迟到了,但接受的答案对我的需求不起作用.以下解决方案是我提出的:

摆脱黑线

1)创建自定义渲染器:

class CustomToolStripProfessionalRenderer : ToolStripProfessionalRenderer
{
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
        // Don't draw a border
    }
}
Run Code Online (Sandbox Code Playgroud)

2)使用自定义渲染器:

toolStrip1.Renderer = new CustomToolStripProfessionalRenderer();
Run Code Online (Sandbox Code Playgroud)

摆脱背景

上面的解决方案满足了原始问题的需要,但我也不喜欢ToolStrip上的渐变背景.我希望ToolStrip成为一个"隐形"容器:

1)创建自定义颜色表:

class CustomProfessionalColorTable : ProfessionalColorTable
{
    public override Color ToolStripGradientBegin
    {
        get { return SystemColors.Control; }
    }

    public override Color ToolStripGradientMiddle
    {
        get { return SystemColors.Control; }
    }

    public override Color ToolStripGradientEnd
    {
        get { return SystemColors.Control; }
    }
}
Run Code Online (Sandbox Code Playgroud)

2)使用自定义颜色表:

class CustomToolStripProfessionalRenderer : ToolStripProfessionalRenderer
{
    public CustomToolStripProfessionalRenderer()
        : base(new CustomProfessionalColorTable())
    {

    }

    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
        // Don't draw a border
    }
}
Run Code Online (Sandbox Code Playgroud)


Dra*_*rat 12

在属性栏中,将"RenderMode"设置为"System"或使用

.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
Run Code Online (Sandbox Code Playgroud)

这样做会将.BackColor更改为"Control",但您可以根据需要更改.