WPF应用程序窗口更改它';s大小

本文关键字:大小 应用程序 窗口 WPF | 更新日期: 2023-09-27 18:27:53

我有一个WPF应用程序,其主窗口的大小应该始终相同。

因此,我在构造函数中设置:

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

screenBounds来自屏幕。在大多数情况下,PrimaryScreen

我还订阅了SystemEvents.DisplaySettingsChanged,并在屏幕分辨率更改时重新执行上面的过程。

在一些罕见的情况下,这不起作用,并且应用程序窗口以不同的大小显示(例如768x556),但屏幕分辨率更改事件没有被触发。我不得不提一下,这个系统上还运行着一个VNC主机。所以我的问题是:-是什么原因导致屏幕分辨率更改事件未检测到的WPF窗口的大小更改?-如何强制窗口始终保持相同的位置和大小?

WPF应用程序窗口更改它';s大小

我的猜测是在代码中手动设置大小,但如果你真的想防止这种情况发生,我建议你设置:

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

编辑:

我发现SystemEvents.DisplaySettingsChanged在用户更改显示设置时触发。尝试使用SystemEvents.DisplaySettingsChanging,它会在任何显示设置更改时触发。

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