WPF Window 水平对齐拉伸

WPF Window HorizontalAlignent Stretch

我有一个简单的任务要完成:启动一个 WPF window,其水平对齐方式被拉伸到当前屏幕的总宽度。我想实现一种自定义的 Overlay MessageBox(我不想使用第三方控件,例如 MahApps),我没有为此使用任何第三方参考。

请看我目前取得的成果(不确定图像是否会显示,link 是 http://imgur.com/e27DyNJ):

我已经尝试使用我编写的 Controller 对象设置宽度,该对象有效,基本上将宽度、高度、左侧和顶部设置为主显示器的宽度。缺点是 window 然后会在主屏幕上弹出,而不是在当前使用的屏幕上弹出。

据我所知,WPF没有任何多屏功能。不过,您可以 PInvoke 一些本机 Multiple Display Monitor Functions,将它们包装在托管 class 中并在这方面利用它们。

作为解决方法,我已执行以下操作:

var screen = System.Windows.Forms.Screen.FromRectangle(new System.Drawing.Rectangle((int)window.Left, (int)window.Top, (int)window.Width, (int)window.Height));
            window.Width = screen.WorkingArea.Width;
            window.Left = screen.WorkingArea.Left;

其中 window 是我的实例 window 我想调整大小。

这适用于打开 window 的当前屏幕。