2017-04-20 64 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

相關問題