2010-12-13 63 views
1

我有沒有在淨/的WinForms,雙顯示器 - 無邊界窗口 - 最大化不起作用

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/fa521007-f317-48f1-9cdd-de2dbcb17aa8

回答(最後一個職位是我的帖子)的問題。 StackOverflow的是更好的論壇,所以你能不能幫我:)

簡述:

  • 雙顯示器配置,在右邊主顯示器具有更低的分辨率,左側顯示器具有更高的分辨率(LO:1280×1024;喜:1680x1050)。在最大化窗口時,窗口大於顯示器(僅在左側顯示器上工作)
  • 在無邊界窗口基類上工作
  • 最大化爲實際客戶區域不能按預期工作。通過添加WndProc鉤子並調整大小參數來解決。多顯示器支持添加了一些問題,因爲最大化似乎依賴於MaxTrackSize而不是MaxSize。這似乎只發生時在主監視器比第二顯示器較小

東西我在說明書中找到:

http://msdn.microsoft.com/en-us/library/ms632605(v=VS.85).aspx

對於具有多個顯示器的系統, 的ptMaxSize和ptMaxPosition 成員描述 主監視器上的最大尺寸 和窗口的位置時,即使該窗口 最終將最大化爲輔助 監視器。在這種情況下,窗口管理器 調整這些值,以 補償 主監視器和監視器 顯示窗口之間的差異。因此,如果用戶離開 原封不動ptMaxSize,監視器比主 監視器大上的窗口 最大化到 更大的顯示器的尺寸。

所以,如果我理解正確的在我的情況下,它不可能在屏幕上最大限度地與更高的分辨率時,有任務欄放置在不將其隱藏在最大化窗口的方式嗎?

乾杯,JBK

回答

0

您可以實現自己的「最大化」:

  1. 確定哪些篩選你的形式駐留在與Screen.FromControl
  2. 設置你的Formaccording到屏幕的偏移量和尺寸偏差和大小。
  3. 您可以根據需要使用屏幕的WorkingArea(桌面區域)或Bounds(帶有工具欄的整個屏幕)。

*如果您想要隱藏工具欄並且事實上是「全屏」,我認爲您需要將窗體設置爲TopMost。

0

這是對我工作:

  1. 設置FormBorderStyleFixedSingle - 也可能與其他款式工夫= ,還沒有測試過...
  2. 套裝WindowStateFormWindowState.Maximized
  3. 重置FormBorderS tyle

至少,它爲純WinForms的東西,而不是訴諸WinAPI的