[ unisoft @ 05.03.2012. 20:24 ] @
Kako da nateram Windows Phone da mi ponovo iscrta sve graficke objekte. Kada kliknem na dugme treba da blinka pozadina grida, da se menja boja (crna/bela). Kod je lak ali promene boje se ne vide. Probao sam da podesim Thread.Sleep na 1000ms i vise i nista se ne desava.

Code:

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            bool bolCheck = false;
            for (int i = 0; i <= 20; i++)
            {
                System.Threading.Thread.Sleep(300);
                if (bolCheck == true)
                {
                    grid1.Background = new SolidColorBrush(Colors.Black);
                    bolCheck = false;
                }
                else
                {
                    grid1.Background = new SolidColorBrush(Colors.White);
                    bolCheck = true;                   
                }
            }
        }
[ ravni @ 06.03.2012. 11:24 ] @
Mozda fali neki
Code:
Application.DoEvents();
?

Edit: mozda ipak ne. Probaj da izmestis tu petlju u drugi thread i da odatle update-ujes backcolor..

[Ovu poruku je menjao ravni dana 06.03.2012. u 12:40 GMT+1]
[ usernaEliteSecurity @ 06.03.2012. 19:08 ] @
Stavio si glavni thread za iscrtavanje na sleep, tesko da ce ista da se iscrta. Iscrtavanje ostavi na glavnom thread-u ako imas neku zahtevnu operaciju u pozadini, a nju mozes da dispatch-ujes na drugi thread/background worker ako se zbog nje blokira glavni thread, pa ne stigne da ti se iscrta... Ako je problem jedino neki refresh, onda probaj sa UpdateLayout() (.. ili tako nekako), to ga stavlja na stack za ponovno iscrtavanje
[ unisoft @ 13.03.2012. 08:18 ] @
Citat:

Stavio si glavni thread za iscrtavanje na sleep, tesko da ce ista da se iscrta. Iscrtavanje ostavi na glavnom thread-u ako imas neku zahtevnu operaciju u pozadini, a nju mozes da dispatch-ujes na drugi thread/background worker ako se zbog nje blokira glavni thread, pa ne stigne da ti se iscrta... Ako je problem jedino neki refresh, onda probaj sa UpdateLayout() (.. ili tako nekako), to ga stavlja na stack za ponovno iscrtavanje


Hvala, bio su u pravu (sada radi) :).