zoukankan      html  css  js  c++  java
  • C# 画线 带箭头 不闪

    画线是很简单的,但是线不是控件,不会自动重复画自己,要在Paint里面画

    如果要改变线的位置,可以通过Refresh强制重绘,这样会清除之前的全部图形,但是缺点是可能会闪(比如拖动控件时重绘连接线)

    为了不闪,要用背景色重复画一次,就相当于擦除,但是就是要记录之前的图形,以便能够擦除

    下面这段代码实现了擦除

    container是画图的容器,可以是任何控件

    points是图形,本例是一个带箭头的折线

    bClear控制是绘图还是擦除

    坑:Graphics.DrawLines的参数points数组的每个元素都必须是有效的,不能有多余的空元素

            private static void DrawLines(Control container, Point[] points,bool bClear)
            {
                Pen pen = new Pen(Color.Red, 3);
                if (bClear)
                {
                    pen.Color = container.BackColor;
                }
                pen.EndCap = LineCap.ArrowAnchor;
                Graphics g = container.CreateGraphics();
    
                g.DrawLines(pen, points);
            }
  • 相关阅读:
    mac重启nginx时报nginx.pid不存在的解决办法
    js 正则表达式
    js 闭包
    js yarn
    js npm
    vue3 vite
    node 错误处理
    node fs
    linux包管理工具使用和区别(转)
    MySQL数据库学习----理论基础
  • 原文地址:https://www.cnblogs.com/shadowpigg/p/14025444.html
Copyright © 2011-2022 走看看