2014-10-27 125 views
0

我有一個WPF應用程序,其主窗口應始終具有相同的大小。WPF應用程序窗口更改它的大小

因此,我在構造函數中設置:

Width = 1024; 
Height = 768;  
ResizeMode = ResizeMode.NoResize; 
WindowStyle = WindowStyle.None; 
Top = screenBounds.Top; 
Left = screenBounds.Left; 
SizeToContent = SizeToContent.Manual; 

screenBounds在大多數情況下,來自Screen.PrimaryScreen

我也訂閱了SystemEvents.DisplaySettingsChanged並在屏幕分辨率改變時重新執行上述步驟。

在一些極少數情況下,這不起作用,並且應用程序窗口以不同的大小顯示(例如768x556),但屏幕分辨率更改事件未觸發。 我不得不提,在這個系統上還有一個VNC主機運行。 所以我的問題: - 什麼會導致一個WPF窗口的大小變化,而不是由屏幕分辨率更改事件檢測到? - 我該如何強制讓窗戶始終保持相同的位置和大小?

回答

1

我的猜測是東西是手動設置的代碼大小,但如果你真的想阻止它的發生,我建議你設置:

this.MaxHeight = this.MinHeight = 768; 
this.MaxWidth = this.MinWidth = 1024; 

編輯:

我發現SystemEvents.DisplaySettingsChanged觸發用戶更改顯示設置。嘗試使用SystemEvents.DisplaySettingsChanging,它會觸發任何顯示設置更改。

+0

err ...和我的回答是不同的如何? – 2014-10-27 08:46:30

+0

我想我們在同一時間回答。所以我沒有複製你或任何東西。 – Tyress 2014-10-27 08:53:18

+0

沒有大小永遠不會在代碼中的其他地方設置... – Harry13 2014-10-27 08:55:20

1

設置最大和最小高度和寬度值?