2010-10-21 12 views
0

我有一個自定義風格的透明窗口,當你使用透明度和「WindowStyle = None」時,我已經看到很多處理min/max/resize行爲的問題。c# - 簡單的方法來獲得最大的窗口x/y界限?

當我告訴我的窗口改變它的windowstate來最大化它並沒有得到它的權利,所以我想覆蓋那裏的邏輯。它的寬度是正確的,但高度都是混亂的,它不知道添加填充來說明外層效應。

如果不使用win32函數,是否有一種SOMEWHAT EASY方法可以確定應用程序在其上運行的顯示器的「max viewport」或「max bounds」?我想這個問題的簡短答案可能不是,但我想我會問無論如何。我有我的最小/最大寬度和高度爲應用程序設置,我想如果有一些函數,我可以打電話給我回到ax/y最大的界限,然後我可以設置窗口的高度和寬度,這些值後,我減填充。我的意圖是支持從1024x768 - 1920x1080的分辨率,這樣這個應用程序可以顯示多個位置而無需重新配置。

+0

我將嘗試實施Lester Lobo的自定義窗口鑲邊技術,但它只是覺得這應該比我的自定義樣式窗口中的「正確」最大化行爲更簡單。我只是恨我失去了所有的窗口功能,只是爲了「重做」我的主窗口。它感覺非常「un-wpf」,因爲一切都應該重新調整到第n度。 – TWood 2010-10-21 17:11:17

+0

我結束了使用自定義鉻技術和restyling我的主窗口。多一點工作比我預期的要多,但最終我學到了一些東西,所以我想這不是浪費精力。 – TWood 2010-11-10 17:26:41

回答

1

看看Screen.PrimaryScreen Property。它有一個名爲GetWorkingArea的方法,我認爲這是你想要的。

如果存在多個顯示器,則有方法可以通過顯示器枚舉並找出應用程序在哪個顯示器上。

+0

啊,這是在system.windows.forms命名空間中。有人告訴我,在我的wpf項目中引用這個庫文件是一個不行,因爲性能上的缺陷。你有使用這個第一手的經驗嗎? – TWood 2010-10-21 16:54:56

+0

@TWood - 我沒有廣泛使用它或在時間關鍵領域,但它確實工作。 – ChrisF 2010-10-21 21:35:19

相關問題