【问题标题】:C# ToolStrip is transparent but border is still visible?C# ToolStrip 是透明的,但边框仍然可见?
【发布时间】:2011-03-09 12:40:36
【问题描述】:

我在 C# 应用程序中有一个 ToolStrip,我将背景颜色设置为透明。这显示了底层表单的颜色,但不幸的是 ToolStrip 边框仍然可见。

我已经实现了一个自定义渲染器并重写了 DrawBoarder 方法以不绘制任何东西,但这似乎也适用于所有包含的按钮(即下拉按钮上的菜单也绘制没有边框)。

所以我被困住了。将整个 ToolStrip 绘制成透明但不保留按钮的最佳方法是什么?

【问题讨论】:

    标签: c# .net drawing toolstrip


    【解决方案1】:

    我尝试过覆盖 OnRenderToolStripBorder 方法,它似乎根本不影响按钮。你试过这样吗?

    public class TestStripRenderer : ToolStripProfessionalRenderer
    {   
        protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
        {
        }
    }
    

    【讨论】:

    • 如果向工具栏添加下拉按钮,下拉按钮的菜单是否呈现有边框或无边框?在我的系统上,这段代码删除了工具条的边框和下拉菜单的边框
    • 无论有没有这个自定义渲染器,下拉菜单的渲染似乎完全相同。
    【解决方案2】:
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
    {
        if( e.ToolStrip.GetType().Name != "MyCustomToolStrip" )
        {
            base.OnRenderToolStripBorder(e);
        }
    }
    

    【讨论】:

      【解决方案3】:

      由于您试图隐藏工具条但保留按钮,所以我必须把它放在那里。

      你还需要工具条吗?

      如果您只使用应用程序中的按钮而不使用看似不需要的工具条,可能会更好。

      【讨论】:

      • 在我的特殊情况下,使用工具条比其他任何东西都便宜。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多