下面我们以多屏画视频播放的边框为例。
错误效果:
期望效果:
- /// <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);
- }
- }
请注意看注释行处的说明。