我该如何摆脱这条丑陋的线条?
在空窗体上绘制一个默认绑定导航器,您将看到问题。RenderMode 是 ManagerRenderMode。我想要这种渲染模式,所以鼠标悬停在颜色上是正确的。但是,如果我切换到系统作为渲染模式,丑陋的线条就会消失,但是鼠标悬停在颜色/效果上会变得丑陋。
一段时间以来,我一直在寻找解决方案,但一无所获。也许这里有人以前见过这个问题?
我该如何摆脱这条丑陋的线条?
在空窗体上绘制一个默认绑定导航器,您将看到问题。RenderMode 是 ManagerRenderMode。我想要这种渲染模式,所以鼠标悬停在颜色上是正确的。但是,如果我切换到系统作为渲染模式,丑陋的线条就会消失,但是鼠标悬停在颜色/效果上会变得丑陋。
一段时间以来,我一直在寻找解决方案,但一无所获。也许这里有人以前见过这个问题?
这不是一个BindingNavigator
特定的问题,而是ToolStrip
继承BindingNavigator
的。
这是类属性为(默认)DrawToolStripBorder
时的方法 引起的。ToolStripProfessionalRenderer
RoundedEdges
true
为了将其关闭,我可以建议以下辅助方法:
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();