我正在尝试为我的应用程序创建一个类似于Mozilla Firefox使用的MainMenu:
因此它显示在航空玻璃上。我可以想到一些方法来做到这一点,除非它们很难看,并且由于它们是黑客的,可能会破坏程序的体验。
我想知道是否有办法自定义绘制MainMenu
控件,类似于如何在其他控件上覆盖OnPaint
方法(由于某种原因,MainMenu
没有)。或者,如果这是不可能的,我可以使用什么样的hacky方式,这不会破坏用户体验。
是的,我确信在WPF中有一个非常简单的方法可以做到这一点,我希望能够花时间学习它,但我的应用程序已经处于半成熟阶段,它此时切换到不同的UI平台会非常不方便。
答案 0 :(得分:1)
我最终创建了自己的控件,它继承了ToolStripMenuItem并覆盖OnPaint并使用DrawThemeTextEx
绘制文本,并使用找到here的MenuStrip渲染器的修改版本省略了标题文本的呈现(所以它不会与DrawThemeTextEx
和ToolStrip的背景栏冲突。
最终产品如下所示: