Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF应用程序窗口更改它';s码_C#_Wpf_Vnc - Fatal编程技术网

C# WPF应用程序窗口更改它';s码

C# WPF应用程序窗口更改它';s码,c#,wpf,vnc,C#,Wpf,Vnc,我有一个WPF应用程序,它的主窗口应该一直保持相同的大小 因此,我在构造函数中设置: Width = 1024; Height = 768; ResizeMode = ResizeMode.NoResize; WindowStyle = WindowStyle.None; Top = screenBounds.Top; Left = screenBounds.Left; SizeToContent = SizeToContent.Manual; 大多数情况下,屏幕边界来自Screen.

我有一个WPF应用程序,它的主窗口应该一直保持相同的大小

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

Width = 1024;
Height = 768;    
ResizeMode = ResizeMode.NoResize;
WindowStyle = WindowStyle.None;
Top = screenBounds.Top;
Left = screenBounds.Left;
SizeToContent = SizeToContent.Manual;
大多数情况下,屏幕边界来自Screen.PrimaryScreen

我还订阅了SystemEvents.DisplaySettingsChanged,并在屏幕分辨率更改时重做上述过程

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

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

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

this.MaxHeight = this.MinHeight = 768;  
this.MaxWidth =  this.MinWidth =  1024;
编辑:


我发现用户更改显示设置时会触发。尝试使用在任何显示设置更改时触发的命令。

错误。。。我的答案是不同的,怎么会呢?我想我们差不多是在同一时间回答的。所以我没有抄袭你或其他任何东西。嗯……我这么说是因为我们以前也遇到过同样的问题,我们真的抓挠了一段时间!直到我们意识到高度和宽度在其他地方被硬编码。编辑我的答案,希望能帮助你发现神秘的分辨率变化事件。2Tyres:不用担心,这是给-1的人的:)