문제

이벤트가 소스를 업데이트해야 할 때마다 소스 이미지를 변경하여 XAML에서 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.freeze ();

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top