在.NET WinForms中创建自定义菜单

时间:2008-09-16 10:49:24

标签: c# .net winforms menu

将.NET 2.0与WinForms一起使用,我想创建一个自定义的多列菜单(类似于2007年的外观和感觉,但没有功能区)。

我的方法是创建一个控件,并使用左/右停靠的工具条,我构建了一个类似的外观和菜单的感觉。但是,此解决方案存在一些缺点,例如

  • 控件只能放置并显示在表单中;
  • 如果表单太小,控件的某些区域将不会显示;
  • 还必须手动显示/隐藏控件。

因此,我正在寻找一种在应用程序边界之外显示此控件的方法。创建一个新表单将导致标题栏在显示时停用,因此也是如此。或者,任何其他创建自定义菜单的方法都会受到欢迎。

编辑:我不想为此使用任何商业产品;而且由于它是一个简单的菜单定制,它与微软的“研究”丝带无关。

2 个答案:

答案 0 :(得分:2)

  • 除非您从事提供.net组件的业务,否则您应该购买现成的产品。它有很多工作可以实现这样的控制 - 已经有供应商提供这种UI。例如ComponentOne
  • 如果您尝试将此组件构建为产品,则应查看以下链接。显然,微软在Office UI周围拥有“免版税”许可,以保护他们的R& D投资。截至目前,您需要告诉他们您正在使用类似于Office UI的内容。 More of that here

答案 1 :(得分:1)

MenuStrip类具有Renderer属性。您可以指定自己的ToolStripRenderer派生类来自定义绘画。这是相当多的工作。