에 새로 고쳐지지하고 동적으로 이런 식으로 논리에 따라 코드 숨김에서 자신의 소스를 설정하고있다.이미지는 내 창문 전화 XAML 페이지에 일부 이미지가 UI
img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("/Images/MAP/" + Path + ".png");
와 페이지가로드 및 이미지가 완전히로드하지만 내 응용 프로그램 논리에 따라 내가 XNA 기반의 사용자 지정 메시지 상자 두 개의 버튼이있는 메시지 상자를 표시 할 때 잘 작동합니다. 나는 동적으로 다시 이미지를로드해야하고 내가 같은 위의 함수를 호출하지만, 그 당시의 나에게 "Invalid Cross Thread Exception"
이 될 수 있음 예외를 제공 한 확인을 사용자가 클릭 일단 UI 스레드에서 내가 시도하지 않은 배경 스레드에서 이미지 소스 설정에 기인한다 Dispatcher
뿐만 아니라 거기에 예외는 아니었다 그러나 UI
이 왜 그런지 사람이 알려주십시오 수
를 새로 고쳐지지 않습니다이 디스패처은이
this.Dispatcher.BeginInvoke(new System.Action(delegate()
{
img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("/Images/MAP/" + Path + ".png");
}));
같은? 그리고 같은 메시지 상자에서 다시 탐색하려했습니다. OK 버튼을 다시 누릅니다. 동일한 "Invalid Cross Thread
"예외가 발생했습니다.
은' "잘못된 크로스 스레드 예외는"'참 ('img1.Source'를) UI 속성을 설정하려고 또는 UI 스레드가 아닌 스레드에서 UI 동작의 다른 종류의 일을하려고 문제입니다. 은'Dispatcher'를 사용하면 (이것은 또한 탐색 킥오프 할 수있는 방법이 될 것이다) UI 스레드에서 실행되는 코드를 전송하는 올바른 방법입니다. 이미지가 실패한 경우 아래와 같이'ImageFailed' 이벤트를 연결하십시오. – Oren