2013-07-25 13 views
7

WPF'de bir ekran koruyucu yazıyorum. Ekran koruyucu çalışıyor, ancak, sadece ana monitörde görüntülenir. Kullanıcı birden fazla ekrana sahip olduğunda "karartmak" veya ek monitörlere grafik çizmek için bir yol var mı? Biraz arama yaptım, ama uygun bir şey bulamadım.WPF: Birden çok ekran

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

ve her ekran için bir tane başlatılırken:

GÜNCELLEME aşağıda ananthonline cevabı itibaren

, aşağıdaki penceresini kullanarak birincil olmayan ekranlarda "kara dışarı" etkisini başarmak başardı App.xaml.cs aşağıdaki işlemi kullanarak:

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

Notiçin bir ithalat Screen sınıfına erişmek içingereklidir.

cevap

3

Her ekranda birden çok pencere kurmak için System.Drawing.Screen. * Sınıflarını kullanabilmeniz gerekir. Her pencerenin en üst düzeye çıkarılmasını değil, uygun boyutta, daha az kenarlıklı bir pencere oluşturmayacağınızı unutmayın.

Ayrıca, çoklu monitör kurulumunun toplam sınırlarının her zaman bir dikdörtgen olmadığını (tüm monitörleri kapsayan bir pencere oluşturmak için tüm sınırları "birleştirmeyi planlıyorsanız) hatırlamak isteyebilirsiniz.

+0

Teşekkürler, tam olarak ihtiyacım olan şey. –

İlgili konular