2013-07-25 18 views
7

Piszę wygaszacz ekranu w WPF. Mam działający wygaszacz ekranu, ale wyświetla się tylko na moim głównym monitorze. Czy istnieje sposób na "zaciemnienie" lub narysowanie grafiki na dodatkowych monitorach, gdy użytkownik ma wiele ekranów? Zrobiłem trochę wyszukiwania, ale nie znalazłem nic istotnego.WPF: Wiele ekranów

UPDATE

Od odpowiedzi ananthonline jest poniżej, udało mi się osiągnąć efekt „black out” na ekranach innych niż podstawowe stosując następujące okno:

<Window x:Class="ScreenSaver.BlackOut" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Cursor="None" WindowStyle="None" ResizeMode="NoResize" Background="Black"> 
</Window> 

i inicjowanie jednym dla każdego ekranu w App.xaml.cs stosując następującą procedurę:

foreach (Screen s in Screen.AllScreens) 
{ 
    if (s != Screen.PrimaryScreen) 
    { 
     BlackOut blackOut = new BlackOut(); 
     blackOut.Top = s.WorkingArea.Top; 
     blackOut.Left = s.WorkingArea.Left; 
     blackOut.Width = s.WorkingArea.Width; 
     blackOut.Height = s.WorkingArea.Height; 
     blackOut.Show(); 
    } 
} 

Uwaga import do System.Windows.Forms jest wymagany, aby uzyskać dostęp do klasy Screen.

Odpowiedz

3

Powinieneś być w stanie używać klas System.Drawing.Screen. *, Aby skonfigurować wiele okien na każdym ekranie. Pamiętaj, że nie ustawiasz maksymalnego okna, ale okno o mniejszej wielkości, o odpowiednim rozmiarze.

Ponadto - możesz pamiętać, że całkowite ograniczenia konfiguracji wielu monitorów nie zawsze muszą być prostokątem (jeśli planujesz "złączyć" wszystkie granice, aby utworzyć okno rozciągające się na wszystkie monitory).

+0

Dzięki, dokładnie to, czego potrzebowałem. –

Powiązane problemy