我试图通过在每次事件确定源需要更新时更改源图像来更新 XAML 中的图像(下面的_browserScreenshot)对象。现在我有这个:
public BitmapSource GetScreen()
{
Bitmap bitmap = new Bitmap(app.Browser.ClientRectangle.Width, app.Browser.ClientRectangle.Height);
app.Browser.DrawToBitmap(bitmap, app.Browser.Bounds);
BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
bitmapSource.Freeze();
bitmap.Dispose();
bitmap = null;
return bitmapSource;
}
然后我有一个事件处理程序,如图所示:
app.BitmapSource.Changed += new EventHandler(BitmapSource_Changed);
void BitmapSource_Changed(object sender, EventArgs e)
{
Window1._browserScreenshot.Source = app.GetScreen();
}
现在,每当此事件触发时,都会拍摄新的屏幕截图,并且应该更新 Image 的源(此处称为 _browserScreenshot)控件。我不断收到有关更改 IsFrozen 属性的错误,但我无法弄清楚如何正确更改它并按照我想要的方式进行工作。提前谢谢大家。