2013-07-25 14 views
7

Sto scrivendo uno screensaver in WPF. Ho lo screensaver funzionante, tuttavia, viene visualizzato solo sul mio monitor principale. C'è un modo per "oscurare" o disegnare elementi grafici su altri monitor quando l'utente ha più schermi? Ho fatto qualche ricerca in giro, ma non ho trovato nulla di rilevante.WPF: schermi multipli

UPDATE

Dalla risposta di ananthonline di seguito, sono stato in grado di realizzare l'effetto "black out" sui display non primarie utilizzando la seguente finestra:

<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> 

e l'inizializzazione uno per ogni schermo nel App.xaml.cs utilizzando il seguente processo:

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(); 
    } 
} 

Nota un'importazione a System.Windows.Forms è necessario per accedere alla classe Screen.

risposta

3

Dovresti essere in grado di utilizzare le classi System.Drawing.Screen. * Per impostare più finestre su ogni schermata. Ricorda che non si imposta la massimizzazione di ciascuna finestra, ma una finestra con dimensioni ridotte e con dimensioni adeguate.

Inoltre, è possibile ricordare che i limiti totali dell'impostazione del monitor multiplo potrebbero non essere sempre un rettangolo (se si intende "unire" tutti i limiti per creare una finestra che ricopra tutti i monitor).

+0

Grazie, esattamente quello di cui avevo bisogno. –

Problemi correlati