2017-04-20 31 views
0

我有一个应用程序,我一直在努力,我建立了一些功能,以便能够启动它,并使其像PC上的屏幕保护程序一样运行。它使主显示器上的主窗口最大化,然后在所有其他显示器上打开黑屏黑色背景窗口。我遇到的问题是,它似乎不适用于两个以上的显示器。 3+显示器,并且停电不会出现在所有的显示器上。WPF应用程序的屏幕保护程序功能不能很好地与三台显示器

代码发动所有的窗口:

foreach (Screen s in Screen.AllScreens) 
{ 
    if (s != Screen.PrimaryScreen) 
    { 
     Blackout window = new Blackout(); 
     window.Left = s.WorkingArea.Left; 
     window.Top = s.WorkingArea.Top; 
     window.Width = s.WorkingArea.Width; 
     window.Height = s.WorkingArea.Height; 
     window.Show(); 
    } 
    else 
    { 
     BigScreenScreenSaver window = new BigScreenScreenSaver(); 
     window.Left = s.WorkingArea.Left; 
     window.Top = s.WorkingArea.Top; 
     window.Width = s.WorkingArea.Width; 
     window.Height = s.WorkingArea.Height; 
     window.Show(); 
    } 
} 
+0

尝试设置界限,而不是工作区 – Krishna

回答

2

您需要使用范围,工作区域不包括任务栏和其他许多

foreach (Screen s in Screen.AllScreens) 
{ 
    if (s != Screen.PrimaryScreen) 
    { 
     Blackout window = new Blackout(); 
     window.Left = s.Bounds.Left; 
      window.Top = s.Bounds.Top; 
      window.Width = s.Bounds.Width; 
      window.Height = s.Bounds.Height; 
     window.Show(); 
    } 
    else 
    { 
     BigScreenScreenSaver window = new BigScreenScreenSaver(); 
     window.Left = s.Bounds.Left; 
      window.Top = s.Bounds.Top; 
      window.Width = s.Bounds.Width; 
      window.Height = s.Bounds.Height; 
     window.Show(); 
    } 

} 
+0

窗口不包含Bounds的定义。如果这是同一件事,我确实有ClipTobounds? – firehotguitar88

+0

这不是Windows窗体吗? – Krishna

+0

WPF。我正在导入system.windows.forms来做某些事情,但这对找到边界没有任何影响。 – firehotguitar88

相关问题