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 d'écran ou quelque chose du genre?
c#
wpf
screen-positioning
Marcel B
la source
la source
WindowStartupLocation.CenterOwner
pour certaines fenêtres enfantsManual
. Réf: msdn.microsoft.com/en-us/library/…xaml
la source
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):
... fonctionne très bien.
Avez-vous envisagé de définir votre propriété de fenêtre principale WindowStartupLocation sur CenterScreen?
la source
Qu'en est-il de la classe SystemParameters dans PresentationFramework? Il a un WorkArea propriété qui semble être ce que vous recherchez.
Mais pourquoi ne pas configurer le Window.WindowStartupLocation? CenterScreen est l'une des valeurs d'énumération. Devez-vous modifier le centrage?
la source
Vous n'avez pas besoin de référencer l'
System.Windows.Forms
assembly à partir de votre application. Au lieu de cela, vous pouvez utiliserSystem.Windows.SystemParameters.WorkArea
. Ceci est équivalent auSystem.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!la source
Il n'y a pas d'équivalent WPF.
System.Windows.Forms.Screen
fait toujours partie du framework .NET et peut être utilisé à partir de WPF.Consultez cette question pour plus de détails, mais vous pouvez utiliser les appels relatifs aux écrans en utilisant la
WindowInteropHelper
classe pour encapsuler votre contrôle WPF.la source
pour une utilisation au centre de l'écran:
pour le centre de la fenêtre parent, utilisez:
la source
Je préfère le mettre dans le code WPF.
Dans le
[WindowName].xaml
dossier:la source