2013-07-25 87 views
7

我正在WPF中编写屏幕保护程序。我有屏幕保护程序工作,但是,它只显示在我的主显示器上。当用户有多个显示器时,是否有办法“禁用”或将图形绘制到其他显示器上?我已经做了一些探索,但没有发现任何相关的东西。WPF:多屏幕

UPDATE

从下面ananthonline的回答,我可以使用下面的窗口来完成对非主显示器的“黑掉”的效果:

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

和初始化一个每个屏幕在App.xaml.cs使用以下过程:

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

注意导入到0123需要才能访问Screen类。

回答

3

您应该可以使用System.Drawing.Screen。*类在每个屏幕上设置多个窗口。请注意,您并未将每个窗口设置为最大化,而是设置了适当大小的边框窗口。另外 - 您可能想要记住多监视器设置的总界限可能不总是矩形(如果您计划“联合”所有界限以创建跨越所有监视器的窗口)。

+0

谢谢,正是我需要的。 –