126 votes

Comment centrer une application WPF à l'écran?

Je souhaite centrer mon application WPF au démarrage sur l'écran principal. Je sais que je dois définir myWindow.Left et myWindow.Top, mais où puis-je obtenir les valeurs?

J'ai trouvé System.Windows.Forms.Screen.PrimaryScreen , ce qui n'est apparemment pas WPF. Existe-t-il une alternative WPF qui me donne la résolution de l'écran ou quelque chose du genre?

185voto

Pratik Deoghare Points 9766

xaml

 WindowStartupLocation="CenterScreen"
 

159voto

Kip9000 Points 4462

Mettez ceci dans votre constructeur de fenêtre

 WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
 

.NET Framework pris en charge dans: 4, 3.5, 3.0

Profil de client .NET Framework pris en charge dans: 4, 3.5 SP1

49voto

Michael Petrotta Points 35647

Vous pouvez toujours utiliser la classe Screen à partir d'une application WPF. Il vous suffit de référencer l'assembly System.Windows.Forms à partir de votre application. Une fois que vous avez fait cela (et référencé System.Drawing pour l'exemple ci-dessous):

 Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
 

... fonctionne très bien.

Avez-vous envisagé de définir votre propriété de fenêtre principale WindowStartupLocation sur CenterScreen?

8voto

Eddie Butt Points 338

Qu'en est-il de la classe SystemParameters dans PresentationFramework? Il a une propriété WorkArea qui semble être ce que vous recherchez.

Mais pourquoi ne pas définir Window.WindowStartupLocation? CenterScreen est l’une des valeurs enum. Devez-vous modifier le centrage?

8voto

Mimi Points 594

Vous n'avez pas besoin de référencer l'assembly System.Windows.Forms de votre application. Au lieu de cela, vous pouvez utiliser System.Windows.SystemParameters.WorkArea . Cela équivaut à System.Windows.Forms.Screen.PrimaryScreen.WorkingArea !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X