当我尝试将我的窗口与显示器的边或角对齐时,我发现屏幕边缘和窗口边缘之间存在某种填充。 我从模板创建了新的 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 上都能正常显示?
最佳答案
左/右/底部可调整大小的边框现在在 Windows 10 上是不可见的,而该边框就是间隙所在的位置。如果将窗口放在屏幕中间,并将鼠标拖动到窗口的左边缘,您将看到光标变为调整大小的光标,超出窗口边缘 8 个像素。这告诉您边界仍然存在。
您可以通过组合使用普通的 GetWindowRect
函数和使用 DwmGetWindowAttribute
函数以及 DWMWA_EXTENDED_FRAME_BOUNDS
来获得偏移量参数。
关于c# - WPF 和 WIndows 10. 窗口周围的不可见边框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35259756/