WPF window.Left +window.Width 显示错误

WPF window.Left +window.Width shows wrong

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

Image example

第一件事:我建议使用 Window.ActualWidth 因为这会给你渲染的 window 实际占用的大小,而 Window.Width 只会给你大小window 从布局系统请求。

总之,这不能解决您的问题。这里的问题是 window 的宽度包含 window 客户区的宽度以及它的非客户区,比如边框(还有一些我不知道的东西真的很了解)。

所以你可以尝试做的是将第二个 window 与第一个 window 的客户区对齐,并考虑 window 边框宽度,就像这样:

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