首页 > 解决方案 > WPF window.Left +window.Width 显示错误

问题描述

我想在第一个窗口附近显示第二个窗口,但是 WPF window.Left+window.Width 对我没有帮助,请看图像示例。

图片示例

标签: wpfwindow

解决方案


首先要做的事情:我建议使用,Window.ActualWidth因为这会给你渲染窗口实际占用Window.Width的大小,而只会给你窗口从布局系统请求的大小。

无论如何,这不会解决你的问题。这里的问题是,窗口的宽度既包含窗口客户区的宽度,也包含其非客户区的宽度,比如边框(还有一些我不太了解的东西)。

因此,您可以尝试将第二个窗口与第一个窗口的客户区对齐,并考虑窗口边框宽度,如下所示:

window.Left = this.Left
    + (this.Content as FrameworkElement).ActualWidth
    + 2 * SystemParameters.BorderWidth;

推荐阅读