c# - 如何更改 WinForms 上下文菜单上复选标记或 'more' 箭头的颜色?

标签 c# winforms contextmenu

我有一个需要使用深色背景的上下文菜单。它使用检查 margin 并有几个子菜单。复选标记和指示子菜单的箭头都是黑色的,因此很难看清。我找不到改变颜色的方法。 (对我来说,他们应该使用 ForeColor,我们已将其设置为白色的文本似乎很明显,但这似乎不会影响复选标记或箭头。)

有办法吗?

编辑:我们使用图像边距中的图像作为变通方法。但是我们还有其他问题,在尝试解决它们之前,我想我会尝试为基本问题找到一个更简单的解决方案。

最佳答案

我过去在类似情况下所做的是通过切换上下文菜单图像来“模拟”复选框。

即我记得菜单项是否被选中/未选中(即作为菜单项 Tag 内的 bool 值),然后根据菜单项的状态。

也许您甚至可以从 MenuItem 派生您自己的类,并以对派生类的用户透明的方式更改其中的检查。

对于右侧的箭头,我假设您可以通过在显示快捷方式的区域内使用另一种字体(例如 Wingdings?)绘制一个箭头来模拟它。

或者,作为一种完全不同的方法,使用 the owner draw functionality of the MenuItem .

关于c# - 如何更改 WinForms 上下文菜单上复选标记或 'more' 箭头的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7907940/

相关文章:

c# - 一次在十个图片框上显示多张图片

c# - dll C# AccessViolationException

c# - 如何使用WinForms进度条?

c# - 线程内的 Threading.Timer 和 Timer 之间的区别

c# - listView 选中的项目到文本框

c# - 为什么 ContextMenuOpening 的 Source 对 Canvas 和 UserControl 的行为不同?

mfc - "Sticky"MFC弹出菜单

c# - 'as' 关键字的用例

c# - 替换第二次出现的 ?与 &

如果元素位于页面底部,jQuery ContextMenu 不会完全显示