天下之事,必先处之难,而后易之。

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);
            }
        }

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

posted @ 2024-09-04 11:55  boonya  阅读(49)  评论(0)    收藏  举报  来源
我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。