2014-10-27 129 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

设置最大和最小高度和宽度值?