Quiero centrar mi aplicación WPF al inicio en la pantalla principal. Sé que tengo que configurar myWindow.Left y myWindow.Top, pero ¿de dónde obtengo los valores?
Encontré System.Windows.Forms.Screen.PrimaryScreen
, que aparentemente no es WPF. ¿Existe una alternativa de WPF que me dé la resolución de pantalla o algo así?
c#
wpf
screen-positioning
Marcel B
fuente
fuente
WindowStartupLocation.CenterOwner
para algunas ventanas infantilesManual
. Ref: msdn.microsoft.com/en-us/library/…xaml
fuente
Aún puede usar la clase Screen desde una aplicación WPF. Solo necesita hacer referencia al ensamblado System.Windows.Forms desde su aplicación. Una vez que haya hecho eso, (y referenciado System.Drawing para el ejemplo a continuación):
... funciona bien.
¿Ha considerado establecer la propiedad de la ventana principal WindowStartupLocation en CenterScreen?
fuente
¿Qué pasa con la clase SystemParameters en PresentationFramework? Tiene una propiedad WorkArea que parece ser lo que está buscando.
Pero, ¿por qué no funciona la configuración de Window.WindowStartupLocation? CenterScreen es uno de los valores de enumeración. ¿Tienes que modificar el centrado?
fuente
No es necesario que haga referencia al
System.Windows.Forms
ensamblado desde su aplicación. En su lugar, puede usarSystem.Windows.SystemParameters.WorkArea
. ¡Esto es equivalente alSystem.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!fuente
No hay equivalente de WPF.
System.Windows.Forms.Screen
sigue siendo parte del marco .NET y se puede utilizar desde WPF.Consulte esta pregunta para obtener más detalles, pero puede usar las llamadas relacionadas con las pantallas usando la
WindowInteropHelper
clase para ajustar su control WPF.fuente
para uso en el centro de la pantalla:
para el centro de la ventana principal, use:
fuente
Prefiero ponerlo en el código WPF.
En
[WindowName].xaml
archivo:fuente