小编jca*_*caw的帖子

如何在.NET/C#中的右键菜单上绘制?

我正在开发一个辅助技术应用程序(在C#中),它将信息叠加在当前打开的窗口之上.它检测可点击的元素,并标记它们.

为此,我正在创建一个无边框透明窗口,TopMost设置为"true",并在其上绘制标签.这意味着在当前应用程序前面总会有一个窗口悬停,我可以在其上绘制标签.

问题是,这个窗口不包括右键菜单 - 只包括其他窗口.当用户右键单击时,将在叠加层上方绘制上下文菜单.

我需要能够在右键单击菜单中标记元素,但我无法在当前实现的基础上绘制它.有人知道解决方案吗?

编辑:这是绘制叠加层的相关代码.我在表单设计器中设置了表单选项,而不是代码明确,所以我不确定它会有多大帮助.我删除了与绘图无关的代码或表单本身:

public partial class OverlayForm : Form
{
    public OverlayForm()
    {

    }

    protected override void OnPaint(PaintEventArgs eventArgs)
    {
        base.OnPaint(eventArgs);
        Graphics graphics = eventArgs.Graphics;
        Brush brush = new SolidBrush(this.labelColor);
        foreach (ClickableElement element in this.elements)
        {
            Region currentRegion = element.region;
            graphics.FillRegion(brush, currentRegion);
        }
    }    
}
Run Code Online (Sandbox Code Playgroud)

.net c# system.drawing winforms

5
推荐指数
1
解决办法
449
查看次数

标签 统计

.net ×1

c# ×1

system.drawing ×1

winforms ×1