将图片框的图像设置为同一图像是否会强制重绘

本文关键字:图像 是否 设置 | 更新日期: 2023-09-27 18:02:31

我有一个后台线程,用于检查硬件设备(相机(的通信状态,并相应地用绿色圆圈或红色X更新表单上的图像。

public bool cameraStatus;
public MainForm()
{
   InitializeComponent();
   // add the UpdateDisplay function to a dictionary that will be periodically called
   updateMethods.Add(new EventHandler(UpdateDisplay));
}
public void UpdateDisplay()
{
   if (cameraStatus)
      imgCameraStatus.Image = Properties.Resources.camera_good;
   else
      imgCameraStatus.Image = Properties.Resources.camera_bad;
}

UpdateDisplay函数经常被调用,大约 50 毫秒。大多数情况下,cameraStatus不会更改imgCameraStatus.Image因此一直设置为相同的值。

图像不会

闪烁,我想知道图像是否每次都会被窗口重新绘制,因为源不会改变。我不确定如何进入 WinForms 绘画周期中的较低级别的绘制函数调用。

将图片框的图像设置为同一图像是否会强制重绘

查看源代码,设置 Image 属性会调用一个名为 InstallNewImage 的私有方法。此方法将始终调用Invalidate这将计划重新绘制消息队列中的PictureBox