当我试图将我的窗口与显示器的一侧或一角对齐时,我发现屏幕边缘和窗口边缘之间存在某种填充。 我从模板创建了新的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上,同样的程序按预期工作。
对于cource我可以将Left
属性设置为-7,但它不是解决方案。我怎样才能正确设置窗口位置,以便在win7和win10上看起来都很好?
答案 0 :(得分:7)
左/右/底部的可调整大小的边框现在在Windows 10上不可见,并且该边框是该间隙所在的位置。如果您将窗口置于屏幕中间,并将鼠标拖动到窗口的左边缘,您将看到光标更改为调整大小的光标,使其超出窗口边缘8个像素。这告诉你边框仍然存在。
您可以使用普通GetWindowRect
函数和DwmGetWindowAttribute
函数的使用以及DWMWA_EXTENDED_FRAME_BOUNDS
参数的组合来获取感染。
答案 1 :(得分:1)
他们保持指标相同(例如,注册表中的PaddedBorderWidth仍为-60),并在主题(“Aero”)中完全实现清晰的调整大小句柄。它不是玻璃,它与Office 2013呈现它们的方式完全不可见。您的应用程序将字面在Windows 7和10上以相同的像素坐标绘制,只有Windows 7将具有填补该空白的玻璃效果。