2

我该如何摆脱这条丑陋的线条?

在此处输入图像描述

在空窗体上绘制一个默认绑定导航器,您将看到问题。RenderMode 是 ManagerRenderMode。我想要这种渲染模式,所以鼠标悬停在颜色上是正确的。但是,如果我切换到系统作为渲染模式,丑陋的线条就会消失,但是鼠标悬停在颜色/效果上会变得丑陋。

一段时间以来,我一直在寻找解决方案,但一无所获。也许这里有人以前见过这个问题?

4

1 回答 1

2

这不是一个BindingNavigator特定的问题,而是ToolStrip继承BindingNavigator的。

这是类属性为(默认)DrawToolStripBorder时的方法 引起的。ToolStripProfessionalRendererRoundedEdgestrue

为了将其关闭,我可以建议以下辅助方法:

public static class WindowsFormsExtensions
{
    public static void DisableRoundedEdges(this ToolStripRenderer renderer)
    {
        var professionalRenderer = renderer as ToolStripProfessionalRenderer;
        if (professionalRenderer != null)
            professionalRenderer.RoundedEdges = false;
    }
}

现在您可以为特定控件关闭它(它在设计时不可用,因此它必须在表单/控件构造函数或加载事件中的运行时):

this.bindingNavigator1.Renderer.DisableRoundedEdges();

或者要全局禁用它,请Main在调用之前在您的方法中添加以下内容Application.Run

ToolStripManager.Renderer.DisableRoundedEdges();
于 2018-01-11T15:38:22.407 回答