c# - ventana - ¿Cómo centrar una aplicación WPF en la pantalla?
wpf tutorial (8)
¿Qué pasa con la clase SystemParameters en PresentationFramework? Tiene una propiedad WorkArea que parece ser lo que estás buscando.
Pero, ¿por qué no va a configurar Window.WindowStartupLocation? CenterScreen es uno de los valores enum. ¿Tienes que modificar el centrado?
Quiero centrar mi aplicación WPF en el inicio en la pantalla principal. Sé que tengo que establecer myWindow.Left y myWindow.Top, pero ¿dónde obtengo los valores?
Encontré System.Windows.Forms.Screen.PrimaryScreen
, que aparentemente no es WPF. ¿Hay alguna alternativa de WPF que me brinde la resolución de pantalla o algo así?
Lo siguiente funciona en el caso de XAML.
WindowStartupLocation="CenterScreen"
No hay equivalente WPF. System.Windows.Forms.Screen
aún forma parte del framework .NET y se puede usar desde WPF.
Consulte esta pregunta para obtener más detalles, pero puede usar las llamadas relacionadas con pantallas utilizando la clase WindowInteropHelper
para ajustar su control WPF.
No necesita hacer referencia al ensamblado System.Windows.Forms
desde su aplicación. En cambio, puede usar System.Windows.SystemParameters.WorkArea
. Esto es equivalente a System.Windows.Forms.Screen.PrimaryScreen.WorkingArea
!
Pon esto en tu constructor de ventana
WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
.NET FrameworkSupported en: 4, 3.5, 3.0
.NET Framework Client ProfileSupported in: 4, 3.5 SP1
Todavía 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 haga referencia a System.Drawing para el ejemplo a continuación):
Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
... funciona bien
¿Ha considerado establecer la propiedad de ventana principal WindowStartupLocation en CenterScreen?
xaml
WindowStartupLocation="CenterScreen"
var window = new MyWindow();
para el centro de la pantalla use:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
para el centro del uso de la ventana principal:
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;