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