WPF和WIndows 10.窗户周围的隐形边界?

Bla*_*ord 9 c# wpf windows-10

当我试图在显示器的侧面或角落对齐我的窗口时,我发现在屏幕边缘和窗口边缘之间存在某种填充.我从模板创建了新的wpf项目,在构造函数中只添加了两行并得到了这个:



为什么它不适合屏幕边缘?当我尝试将窗口放到右下角时,同样的问题:

Rect workArea = SystemParameters.WorkArea;
Left = workArea.Location.X + workArea.Width - Width;
Top = workArea.Location.Y + workArea.Height - Height;
Run Code Online (Sandbox Code Playgroud)

看起来窗口有7px边框(就像在win7上一样)但在win10上看不见.此外,我发现,如果我都设置WindowStyleWindowStyle.NoneResizeModeResizeMode.NoResize正确,系统地窗口,但这不是我所需要的.在win7上,同样的程序按预期工作.

我可以将Left属性设置为-7,但它不是解决方案.我怎样才能正确设置窗口位置,以便在win7和win10上看起来都很好?

mik*_*kew 7

左/右/底部的可调整大小的边框现在在Windows 10上不可见,并且该边框是该间隙的位置.如果您将窗口置于屏幕中间,并将鼠标拖动到窗口的左边缘,您将看到光标更改为调整大小的光标,使其超出窗口边缘8个像素.这告诉你边框仍然存在.

您可以通过使用正常的组合得到offests GetWindowRect功能和使用的DwmGetWindowAttribute功能与一起DWMWA_EXTENDED_FRAME_BOUNDS参数.