C# Graphics画矩形出现缺少或遮挡问题解决

下面我们以多屏画视频播放的边框为例。

错误效果:

期望效果:

 /// <summary>
        /// 绘制播放视频控件边框(0:黑色,1:绿色)
        /// </summary>
        /// <param name="color">0:黑色,1:绿色</param>
        public void DrawVideoBorder(int color)
        {
            // 画图对象需要每次都创建,类似初始化一个不同的画布,否则出现矩形不完整情况
            graphics = this.CreateGraphics();
            
            //if (graphics == null)
            //{
            //    graphics = this.CreateGraphics();
            //}
            lock (graphics)
            {
                if (color == 1)
                {
                    graphicsColor = Color.FromArgb(60, 255, 60);
                    // 绿色
                    pen = new Pen(graphicsColor);
                } else if (color == 2)
                {
                    graphicsColor = Color.FromArgb(255, 60, 60);
                    // 红色
                    pen = new Pen(graphicsColor);
                }
                else
                {
                    graphicsColor = Color.FromArgb(105, 105, 105);
                    // 黑色
                    pen = new Pen(graphicsColor);
                }
                Rectangle rect = new Rectangle();
                rect.X = 0;
                rect.Y = 0;
                rect.Width = this.Width - 3;
                rect.Height = this.Height - 3;
                rect.Location = new Point(0,0);
                graphics.DrawRectangle(pen, rect);
            }
        }

请注意看注释行处的说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值