2012-05-02 37 views
2

如何在第二台显示器上显示SplashScreen?现在它只显示在主监视器上,但应用程序从辅助监视器上启动。如何在第二台显示器上显示SplashScreen?

+0

我想你的意思是如何在启动应用程序的相同监视器上显示启动画面,或者如何检测应用程序将启动的监视器? – Rup

+1

WPF SplashScreen类大量使用pinvoke来尽可能快地显示图像。本地窗口位置是硬编码的,位于主监视器的中心。没有什么可以调整来改变这一点。因此,除了放弃SplashScreen外,唯一体面的解决方法是让您的主窗口也显示在主显示器上。 –

回答

0

检出System.Windows.Forms.Screen类。 您可以使用Screen.GetWorkingArea()获取当前显示,然后根据此设置启动画面的位置。 Screen.FromControl()Screen.AllScreens也可能有用。

1

你可以在启动画面的WindowStartupLocation属性中使用'Screen'类(我假设你为此使用了一个Window)。

像:

Window someWindow = new SomeWindow(); 
someWindow.WindowStartupLocation = WindowStartupLocation.Manual; 
someWindow.Left = Screen.AllScreens[1].Bounds.Left; 
someWindow.Top = Screen.AllScreens[1].Bounds.Top; 

如果需要的话你可以自己ofcourse居中。以屏幕高度和窗口高度计算中心。

相关问题