Pregunta

Quiero centrar mi aplicación WPF en el arranque en la pantalla principal. Yo sé que tengo que configurar myWindow.Left y myWindow.Top, pero donde puedo obtener los valores?

He encontrado System.Windows.Forms.Screen.PrimaryScreen, que al parecer no es WPF. ¿Hay una alternativa WPF que me da la resolución de la pantalla o algo por el estilo?

¿Fue útil?

Solución

Ponga esto en su constructor de la ventana

WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
  

.NET FrameworkSupported en: 4, 3,5,   3.0

     

.NET Framework ProfileSupported Client   en: 4, 3.5 SP1

Otros consejos

xaml

WindowStartupLocation="CenterScreen"

Puede seguir utilizando la clase de pantalla de una aplicación WPF. Sólo tiene que hacer referencia a las System.Windows.Forms ensamblaje desde la aplicación. Una vez que hayas hecho esto, (y se hace referencia System.Drawing para el ejemplo abajo):

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

... funciona muy bien.

¿Ha considerado el establecimiento de su WindowStartupLocation principal propiedad de la ventana a CenterScreen?

¿Qué pasa con la clase SystemParameters en PresentationFramework? Tiene una Área de Trabajo propiedad que parece ser lo que busca.

Pero, ¿por qué no va a establecer el trabajo Window.WindowStartupLocation? CenterScreen es uno de los valores de enumeración. ¿Tiene que ajustar el centrado?

No es necesario hacer referencia a la asamblea System.Windows.Forms desde la aplicación. En su lugar, puede utilizar System.Windows.SystemParameters.WorkArea. Esto es equivalente a la System.Windows.Forms.Screen.PrimaryScreen.WorkingArea!

No hay WPF equivalente. System.Windows.Forms.Screen sigue siendo parte del marco .NET y puede ser utilizado desde WPF sin embargo.

esta pregunta para obtener más detalles, pero se pueden utilizar las llamadas relativas a las pantallas mediante el uso de la clase WindowInteropHelper para envolver el control de WPF.

var window = new MyWindow();

para el centro de la utilización de la pantalla:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

En el centro de la utilización ventana padre:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top