c# - WPF 和 WIndows 10. 窗口周围的不可见边框?

标签 c# wpf windows-10

当我尝试将我的窗口与显示器的边或角对齐时,我发现屏幕边缘和窗口边缘之间存在某种填充。 我从模板创建了新的 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/

相关文章:

powershell - 在Windows 10上使用Powershell播放视频

ubuntu - Visual Studio 代码无法在适用于 Linux 的 Windows 10 子系统(ubuntu)上启动

c# - 遍历 C# MVC 中的列表并访问属性

c# - 枚举未设置时会发生什么?

wpf - "The name ' InitializeComponent ' does not exist in the current context"- 用于新的 WPF 项目

c# - 如何使用 MVVM 在 WPF 中将命令附加到事件 - DataGrid 选择更改为更新显示在 TextBlock 中的行数

c# - 成功写入事件日志(并收到一条我不理解的消息)

c# - mvc4 - db.SaveChanges() - 十进制值超出范围

c# - 将 CollectionViewSource 与 GroupDescriptions 一起使用时的 ListBox ScrollIntoView(即 IsGrouping == True)

c# - 如何在上传前选择图片并裁剪?