WPF에서 응용 프로그램의 다른 부분이 이미지에 쓰려고 시도하기 전에 창을 닫은 후에 배경 이미지 파일에 파일 잠금이 해제되지 않는 문제가 있습니다.창 배경 이미지 삭제 WPF
예를 들어, 3 개의 창, 1 개의 "메뉴"선택 창 및 2 개의 다른 창으로 구성된 WPF 응용 프로그램이 있다고 가정 해보십시오. 두 창 모두 ImageSource
(과 동일 이미지)으로 BitmapImage
을 사용하여 ImageBrush
을 만듭니다.
창 A는 버튼이 그 누르면 원래 ImageSource
으로 사용되는 파일을 통해 그들 각각을 복사하고 새로운 ImageBrush
를 만들고 새로운 브러시로 Window.Background
를 설정하여 사용할 수있는 배경 이미지를 통해 순환합니다.
창 B는 ImageBrush
을 사용하여 Window.Background
을 그립니다.
창 A가 시작되면 배경이 전환되고 닫히고 창 B가 시작되면 모든 것이 정상입니다.
창 B가 시작되고 닫히면 창 A가 시작되고 배경 전환으로 충돌이 발생합니다. 배경을 바꾸려고하면 IOException
이 표시됩니다.
"다른 프로세스에서 사용 중이므로 'C : \ Backgrounds \ Background.png'파일에 액세스 할 수 없습니다."
그래서 창 B는 여전히 어떻게 든 그것을 잡고 있어야합니다!? 나는 그 문제를 치료하는지 알기 위해 GC.Collect(); GC.WaitForPendingFinalizers();
을 시도했지만 시도하지는 않습니다.
그것은 멋지다, 당신에게 양쪽 다 감사해라! – Siyfion