2011-01-26 9 views
5

Dzisiaj znaleźliśmy mały dziwny problem w jednej z naszych aplikacji WPF i nie jesteśmy do końca pewni, jak sobie z tym poradzić. Gdy uruchomimy oprogramowanie na jednym z naszych laptopów, ekran przejdzie w stan uśpienia (zmieni kolor na czarny) po pewnym czasie, kiedy nie będzie interakcji użytkownika. Sama aplikacja jest wciąż zajęta pobieraniem danych z Internetu i wypełnianiem tabel w bazie danych. Dostępny jest również pasek postępu i pasek stanu.Okna aplikacji WPF nie są w pełni odświeżane po przebudzeniu ekranu ze stanu uśpienia.

Jeśli obudzimy ekran, po prostu poruszając myszą, program zostanie ponownie wyświetlony, ale niektóre części okna nie zostaną odświeżone. Pasek postępu wciąż pokazuje wartości, nawet jeśli proces jest zakończony i pasek stanu jest również błędny.

Od tej pory możesz pracować z programem tak, jak nic się nie dzieje, ale pasek postępu i pasek statusu zostaną przerysowane tylko wtedy, gdy zminimalizujesz całe okno do paska zadań i zmaksymalizuje go ponownie. Lub jeśli uruchomisz kolejną akcję, która również będzie korzystała z paska postępu lub paska stanu.

To dziwne zachowanie spowodowało wiele zamieszania, ponieważ wyświetlane dane wydają się błędne po uaktywnieniu się ekranu ze snu i musisz zminimalizować i zmaksymalizować okno, aby zobaczyć, co naprawdę się dzieje.

Co jest nie tak?

Odpowiedz

2

Czy sterowniki wideo są aktualne? Jeśli nie, możesz spróbować je zaktualizować. WPF wykorzystuje sprzęt wideo do renderowania. Od pewnego czasu miałem problemy z odświeżaniem i naprawiłem to nowymi sterownikami.

0

Upewnij się, że operacja w tle nie powoduje przecinania wątku interfejsu użytkownika. Ale, jak sugeruje Cory, może to być problem ze sterownikiem wideo.

0

Mam ten sam problem i brak rozwiązania, ale prosty przykład, który prowadzi do opisanego zachowania. Może to pomóc w wyszukiwaniu błędów.

<Window x:Class="BlackAfterMinimize.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" SizeToContent="WidthAndHeight" WindowState="Minimized"> 
    <Grid> 
    <TextBlock Text="Hello World" /> 
    </Grid> 
</Window> 
Powiązane problemy