Witam!
Na początku programu ustawiam że okienko 1 ma się uruchamiać na ekranie pierwszym, a okienko 2 na ekranie 2. W ten sposób:
public void UstawOkna(Window w_sterowania, Window w_wyswietlania)
{
drawing.Rectangle panelSterowania= screen.AllScreens[0].WorkingArea;
drawing.Rectangle panelWyswietlania = screen.AllScreens[1].WorkingArea;
w_sterowania.Top = panelSterowania.Top;
w_sterowania.Left = panelSterowania.Left;
w_wyswietlania.Top = panelWyswietlania.Top;
w_wyswietlania.Left = panelWyswietlania.Left;
w_sterowania.WindowStyle = WindowStyle.None;
w_wyswietlania.WindowStyle = WindowStyle.None;
w_sterowania.WindowState = WindowState.Maximized;
w_wyswietlania.WindowState = WindowState.Maximized;
}
Następnie w drugim wątku puszczam sprawdzanie czy przypadkiem kabel nie został odłączony (jeśli tak się stanie informuję o tym użytkownika). Dalej zostaje sprawdzone czy monitor został podłączony (while + thread.sleep(2000)), jeśli został podłączony to chciałbym ponownie ustawić okienka na odpowiednich ekranach - i tu pojawia się problem o następującej treści:
"Wątek wywołujący nie może uzyskać dostępu do tego obiektu, ponieważ należy on do innego wątku."
Poszukałem co na to google i znalazłem następujący temat:
http://4programmers.net/Forum/C_i_.NET/109886-Problem_z_watkiem
Próbowałem na różne sposoby użyć tego Dispatcher.Invoke(...) ale niestety bez powodzenia.
Może ktoś też miał taki problem i udało mu się go rozwiązać?
Funkcja wywoływana w wątku jest taka
UstawOkna(this, PW)