visual toda resolucion que posicionar pantalla ocupe net mas hacer grande formularios formulario form escala completa como clase automático autoajustar ajuste ajustar c# wpf screen css

toda - Cómo determinar el ancho/alto de la pantalla usando C#



pantalla completa c# (6)

Quiero establecer el ancho y alto de una Window forma dinámica en función del ancho / alto máximo de las pantallas de usuario. ¿Cómo puedo determinar esto programáticamente?


No pude usar ninguna de las soluciones anteriores bajo .NET 4.0.30319.42000 con Windows 10 Enterprise cuando lo llamé desde Ranorex Studio 8.0.1 + git.8a3e1a6f, así que usé la línea

using WinForms = System.Windows.Forms; […] SetWindowPos(processes[0].MainWindowHandle, 0, y, x, WinForms.SystemInformation.PrimaryMonitorSize.Width, WinForms.SystemInformation.PrimaryMonitorSize.Height, SWP.SHOWWINDOW);


Para la pantalla principal:

System.Windows.SystemParameters.PrimaryScreenWidth System.Windows.SystemParameters.PrimaryScreenHeight

( Tenga en cuenta que también hay otras propiedades relacionadas con la pantalla principal que dependen de varios factores, Full* y Maximised* )

Pantalla virtual:

SystemParameters.VirtualScreenWidth SystemParameters.VirtualScreenHeight


Puede obtener la altura y el ancho de la pantalla:

int height = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height; int width = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width;

Luego, establezca las propiedades de Height y Width la Ventana a aquellas en la Inicialización.

this.Height = height; this.Width = width;

Trabaja para obtener la altura y el ancho de la pantalla en WinForms o en ASP .NET. Si no es un proyecto de WinForm, no será un problema, excepto que necesitará hacer referencia al conjunto System.Windows.Forms en su proyecto.


Puedes usar el evento SizeChanged

SizeChanged="MyWindow_SizeChanged"

Luego, en su controlador de eventos,

private void Window_SizeChanged(object sender, SizeChangedEventArgs e) { if (this.MinWidth > 0 && this.MinHeight > 0) { double heightScaleFactor = e.NewSize.Height / this.MinHeight; double widthScaleFactor = e.NewSize.Width / this.MinWidth; mainGrid.LayoutTransform = new ScaleTransform(heightScaleFactor, widthScaleFactor); } }

donde MainGrid es un contenedor para todos los contenidos en MyWindow .


Si desea las dimensiones específicas del monitor en el que se está ejecutando su programa (si alguien está ejecutando más de un monitor), también puede usar:

var helper = new WindowInteropHelper(this); //this being the wpf form var currentScreen = Screen.FromHandle(helper.Handle);

Esto devolverá un objeto de pantalla que hace referencia al monitor en el que se está ejecutando el programa. Desde allí puede usar la propiedad currentScreen.Bounds.Width / Height (para el tamaño completo) o currentScreen.WorkingArea.Width / Height (menos la barra de tareas, etc.) dependiendo de lo que desee.


usar objeto de pantalla

Screen.PrimaryScreen.Bounds.Width