WPF/C# Zamrozenie aplikacji

0

Witam. Mam pytanie odnośnie zamrożenia głównego okna aplikacji w taki sposób w jaki wykonuje to MessageBox("show");

Mam kilka animacji i czasem musze poczekac, az sie one skończą.
Znam czas ich wykonywania dlatego pomyslalem, zeby zamrozic okno (ale umozliwic dalsze "malowanie") na jakis czas - np. 2sec Sleep(2000) i Join(2000) nie zdaja efektu - bo animacji nie widac, natomiast po wywolaniu MessageBox'a widac animacje a aplikacja czeka na nacisniecie "OK".
Dlatego gdyby udalo mi sie uzyskac taki sam efekt "zamrozenia" jak w messagebox to najprawdopodobniej molbym w koncu ruszyc do przodu :)

//Animacje poprzez BeginAnimation, w zwiazku z czym, gdyby dalo sie tez poczekac do momentu zakonczenia --wszystkich-- uruchomionych animacji wywolanych przez BeginAnimation to bylo by jeszcze fajniej :)
Za wszystkie cenne uwagi dzieki:)

0

Każda animacja ma event Completed, ale musiałbyś się do każdej animaci podpiąć. Może jest możliwość stworzenia z nich obiektu Storyboard i podpięcie się na jego event Completed?

A tak w ogóle to czemu musisz czekać na ich zakończenie? Animacje są wykonywane asynchronicznie więc twoja aplikacja powinna działać i troche mija się z celem blokowanie jej na ten czas.

0

Bo na jednym obiekcie beda rozne kombinacje animacji - jeden obiekt powędruje w punkt x,y a potem w x2,y2 (obiektow jest duzo i kombinacje rozne) jezeli nie poczekam (np. poprzez wykle zamrozenie na 1sec)
zanim wywolam druga animacje na tym obiekcie to nie bedzie widac pierwszej a od razu druga.
Czasem 20 obiektow poleci w swoje wlasne x,y na raz - a potem w x2,y2 (dla kazdego inne wspolrzedne), gdybym zamrozil sobie (poczekal na zakonczenie tych animacji zanim druga sie zacznie) to by bylo elegancko (np. gdy rozdziele dwie animacje poprzez message.show() wszystko wyglada jak zaplanowalem).

0

To się robi tak, że drugą animację startujesz w obsłudze zdarzenia Completed pierwszej animacji. Wtedy druga startuje dopiero jak pierwsza się zakończy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1