我试图通过每一个事件确定时间源需要更新改变源图像来更新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();
}

现在每当这个事件触发一个新的屏幕截图被取和图像(称为_browserScreenshot这里)控制应更新的来源。我不断收到有关更改ISFROZEN属性格式错误,但我无法弄清楚如何正确地改变这一点,有这样的工作,我希望它的方式。由于事先大家。

有帮助吗?

解决方案

在所有的情形产生,你的的冻结对象。你遇到的问题是要建立一个完全新的BitmapSource每一次,让旧有形象的垃圾收集处置。

其他提示

在下面的行原来是我的问题:

bitmapSource.Freeze();

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top