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窗口的大小更改?-如何强制窗口始终保持相同的位置和大小?
我的猜测是在代码中手动设置大小,但如果你真的想防止这种情况发生,我建议你设置:
this.MaxHeight = this.MinHeight = 768;
this.MaxWidth = this.MinWidth = 1024;
编辑:
我发现SystemEvents.DisplaySettingsChanged在用户更改显示设置时触发。尝试使用SystemEvents.DisplaySettingsChanging,它会在任何显示设置更改时触发。
设置最大和最小高度和宽度值?