Frage

Ich versuche, durch eine Änderung der Quellbild ein Bild (_browserScreenshot unten) Objekt in XAML zu aktualisieren jedes Mal ein Ereignis, die Quelle aktualisiert werden muss bestimmt. Im Moment habe ich dies:

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;
}

Dann habe ich einen Event-Handler wie folgt:

app.BitmapSource.Changed += new EventHandler(BitmapSource_Changed);

void BitmapSource_Changed(object sender, EventArgs e)
{
    Window1._browserScreenshot.Source = app.GetScreen();
}

Nun, wenn dieses Ereignis einen neuen Screenshot ausgelöst wird genommen und die Quelle des Bildes (genannt _browserScreenshot hier) Steuerung aktualisiert werden soll. Ich erhalte eine Fehlermeldung über die IsFrozen propery zu ändern, aber ich kann nicht herausfinden, wie diese richtig zu ändern und haben diese Arbeit so, wie ich es will. Vielen Dank im Voraus alle.

War es hilfreich?

Lösung

In aller Wahrscheinlichkeit Sie wollen , um das Objekt gefrieren. Das Problem, das Sie ist, dass Sie ein völlig neues Bitmap jedes Mal erstellt werden soll und der Garbage Collector dispose des alten Bildes lassen.

Andere Tipps

Die folgende Zeile stellte sich heraus, mein Problem zu sein:

bitmapSource.Freeze ();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top