代码之家  ›  专栏  ›  技术社区  ›  Chinjoo

在winforms中创建覆盖控件

  •  1
  • Chinjoo  · 技术社区  · 16 年前

    1 回复  |  直到 16 年前
        1
  •  3
  •   Paul Williams    16 年前

    你可以试着用画布来画( Panel )它处理将图像绘制为背景以及之后的所有注释/标记。这将使前景看起来是透明的。我想你会想 Control.DoubleBuffer 为了表现。

    您可以尝试设置样式 ControlStyles Control.OnPaintBackground 什么也不做,然后重写 Control.OnPaint 把你所有的画都画在里面。

    如果性能仍然不可接受,请密切注意PaintEventArgs.ClipRect文件财产。这是你唯一需要画的地方。诀窍是找出哪些注释/覆盖与此矩形相交,并按正确顺序绘制它们。

    无论是这个画布还是更高级别的控件都需要跟踪鼠标的移动,以便您知道在何处绘制线条、粘贴图像等。

    推荐文章