2010-10-11 31 views
0

我遇到了有關Windows Vista SP2上的WPF窗口的問題。當ShowInTaskbar爲false並且顯示器自動關閉時,窗口不顯示

我創建具有以下屬性的窗口:

WindowStyle="None" 
ShowInTaskbar="False" 
ResizeMode="NoResize" 
Background="Transparent" 

的ShowInTaskbar設置爲false,這意味着該窗口不顯示任務欄按鈕,但可以使用ALT + TAB

看到它的taskbarlist

在我的應用程序,接收一些事件時,該窗口將被創建並顯示(),例如,

window1 wd = new windw1(); 
wd.topmost = true; 
wd.show(); 

我正好在跟隨着情況發現,日Ë窗口不顯示正確

在電源管理我的顯示器設置爲關閉顯示屏在1分鐘內,

1分鐘後,我的顯示器關掉,在此之後,還有由此引發的一個事件窗口來顯示,但是在我移動鼠標使顯示返回之後,我沒有看到窗口顯示,而是當我使用Alt + Tab時,我可以在我的應用程序圖標的taskbarlist中找到一個透明的窗口。這很奇怪。當我點擊「顯示桌面」兩次後,窗口就會顯示出來。

我在互聯網上搜索了一下,發現當showtaskbar設置爲false時,會出現另一個透明窗口,它是當前窗口的所有者,這就解釋了爲什麼我可以在taskbarlist usring中看到透明窗口Alt + Tab鍵。我認爲在這種情況下,窗口未被正確繪製。

我認爲這是WPF的錯誤,有沒有解決方法?

在此先感謝

回答

0

你可以讓你的應用程序感知電源,使其檢查顯示器的狀態。請參閱http://msdn.microsoft.com/en-us/library/ms703398%28VS.85%29.aspx。 然後,您可以訂閱Powerbroadcasts,並在顯示器重新開機時獲得消息。 在該事件中,您可以強制您的應用程序重新繪製相關窗口。

不幸的是,這只是一個解決方法,並沒有解決最初的問題

相關問題