WPF에서 BitMapSource 사용 이미지 소스로 사용합니다
-
19-08-2019 - |
문제
이벤트가 소스를 업데이트해야 할 때마다 소스 이미지를 변경하여 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 ();
제휴하지 않습니다 StackOverflow