Wpf - 以主桌面为中心

Wil*_* Am 7 .net wpf window wpf-positioning

我知道WPF有一个"CenterScreen"值,用于在桌面上居中一个窗口.但是,在双显示器上,这不是很愉快.

我如何以主显示器为中心?我是否需要经历检测主桌面,获取其几何图形等的歌曲和舞蹈,还是有更好的方法?

小智 6

多个屏幕有点问题,它没有内置的,很好的方式来处理它们,但是通过一些数学和系统参数,你可以完成它.

如果将窗口定位在位于主屏幕左上角的位置(0,0).因此,为了使您的窗口出现在该屏幕的中心,请使用:

this.Left = (SystemParameters.PrimaryScreenWidth / 2) - (this.ActualWidth / 2);
this.Top = (SystemParameters.PrimaryScreenHeight / 2) - (this.ActualHeight / 2);
Run Code Online (Sandbox Code Playgroud)

基本思想很简单,所以无需解释.

请注意,此代码适用于C#,但我确信VB具有类似的功能.

另请注意,您应该使用ActualWidth\ActualHeight属性而不是Width\Height属性,因为它可以保存NaN值.

祝好运.