当我试图将我的窗口对齐或显示的角时,我发现屏幕的边缘和窗口的边缘之间有某种填充。我从模板创建了新的wpf项目,在构造函数中只添加了两行,得到如下结果:

为什么它不适合屏幕边缘?当我试图将窗口放在右下角时,同样的问题如下:
Rect workArea = SystemParameters.WorkArea;
Left = workArea.Location.X + workArea.Width - Width;
Top = workArea.Location.Y + workArea.Height - Height;它看起来像窗口有7px边框(就像在win7上一样),但在win10上是不可见的。我还发现,如果同时将WindowStyle设置为WindowStyle.None,将ResizeMode设置为ResizeMode.NoResize,系统将正确地放置窗口,但这不是我所需要的。在win7上,相同的程序按照预期工作。
当然,我可以将Left属性设置为-7,但这不是一个解决方案。如何正确设置窗口位置,使其在win7和win10上看起来都很好?
发布于 2016-05-18 23:59:42
左边/右边/底部的可调整大小边框现在在Windows 10上是不可见的,而该边框正是该空白的位置。如果您将窗口放在屏幕的中间,并将鼠标拖动到窗口的左侧边缘,您将看到光标更改为调整大小的光标,在窗口边缘更远的地方进行8像素的调整。这表明边界仍然存在。
您可以通过使用普通GetWindowRect函数和DwmGetWindowAttribute函数的组合以及DWMWA_EXTENDED_FRAME_BOUNDS参数来获得补偿。
发布于 2016-02-09 03:23:42
它们将度量保持不变(例如,注册表中的PaddedBorderWidth仍然是-60),并完全在主题("Aero")中实现清晰的调整大小句柄。这不是玻璃,它只是完全看不见Office 2013渲染它们的方式。你的应用程序在Windows 7和10上都会以相同的像素坐标绘制,只有Windows 7才会有玻璃效果来填补这个空白。
https://stackoverflow.com/questions/35259756
复制相似问题