我有一个包含图片框的表单(其中绘制了一个位图,该位图通过“ pictureBox1.Invalidate”进行了更新) 在Form的内部(在右下角)绘制了一个圆圈,该圆圈的开头为红色,并根据逻辑变为绿色(“ this.Invalidate()”)。 如果我评论pictureBox1.Invalidate并保留this.Invalidate(),LED将根据需要更改颜色,但不会更新图片框内的位图(显然反之亦然) 我想同时更新两者。 我该怎么办??
// THIS METHOD ALLOWS YOU TO DRAW A BITMAP INSIDE A PICTUREBOX THAT IS LOCATED WITHIN A FORM
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
try
{
Nuitrack.Update(_skeletonTracker);
}
catch (LicenseNotAcquiredException exception)
{
Console.WriteLine("LicenseNotAcquired exception. Exception: ", exception);
throw exception;
}
catch (Exception exception)
{
Console.WriteLine("Nuitrack update failed. Exception: ", exception);
}
//Draw bitmap
e.Graphics.DrawImage(_bitmap.Bitmap, new Point(0, 0));
pictureBox1.Invalidate();
}
// THIS METHOD ALLOWS YOU TO DRAW A LED ON THE FORM
protected override void OnPaint(PaintEventArgs args)
{
base.OnPaint(args);
// Update Nuitrack data. Data will be synchronized with skeleton time stamps.
try
{
Nuitrack.Update(_skeletonTracker);
}
catch (LicenseNotAcquiredException exception)
{
Console.WriteLine("LicenseNotAcquired exception. Exception: ", exception);
throw exception;
}
catch (Exception exception)
{
Console.WriteLine("Nuitrack update failed. Exception: ", exception);
}
// Draw LED
Pen blackPen = new Pen(Color.Black, 5);
args.Graphics.DrawEllipse(blackPen, 565, 502, 45, 45);
//LED is Red
args.Graphics.FillEllipse(Brushes.Red, 565, 502, 45, 45);
// Draw skeleton joints
if (_skeletonData != null)
{
foreach (var skeleton in _skeletonData.Skeletons)
{
//LED becomes Green
args.Graphics.FillEllipse(Brushes.Green, 565, 502, 45, 45);
}
}
//Update Form
//this.Invalidate();
}