¿Cómo puedo recuperar la resolución de pantalla en la que se ejecuta mi aplicación C# Winform?¿Cómo recuperar la resolución de pantalla de una aplicación winform C#?
Respuesta
¿Necesita solo el área que usaría una aplicación estándar, es decir, excluyendo la barra de tareas de Windows y las ventanas acopladas? Si es así, use el Screen.WorkingArea property. De lo contrario, use Screen.Bounds.
Si hay varios monitores, tiene que agarrar la pantalla de su forma, es decir
Form myForm;
Screen myScreen = Screen.FromControl(myForm);
Rectangle area = myScreen.WorkingArea;
Si quieres saber cual es la pantalla principal, utilice la propiedad Screen.Primary. Además, puede obtener una lista de pantallas de la propiedad Screen.AllScreens.
Utilice la clase Screen e interrogue a la propiedad Bounds. La clase Screen tiene una propiedad estática para Primary Screen y otra propiedad estática que devuelve a list of all the screens attached to the system.
+1 para el enlace a Screen.AllScreens. – ToolmakerSteve
Screen.PrimaryScreen.WorkingArea.Size()
La respuesta correcta es correcta, hasta donde llega. Sin embargo, cuando ha configurado su tamaño de texto en algo más de 125%, Windows (y .NET) comienzan a parpadear aproximadamente del tamaño de la pantalla para poder escalar automáticamente.
La mayoría de las veces, esto no es un problema, generalmente quiere Windows y .NET para hacer esto. Sin embargo, en el caso en que realmente necesite conocer el recuento real de píxeles en la pantalla (por ejemplo, desea pintar directamente en el escritorio DC), puede hacer lo siguiente. Solo he probado esto en Win10. YMMV en otras versiones de Windows.
Hasta ahora, esta es la única manera que he encontrado para obtener un verdadero conteo de píxeles de pantalla si no quiere desactivar globalmente el reconocimiento de DPI en su aplicación. Tenga en cuenta que este ejemplo obtiene el tamaño de visualización principal; deberá modificarlo para obtener otras pantallas.
[DllImport("User32.dll")]
static extern IntPtr GetDC(IntPtr hwnd);
[DllImport("User32.dll")]
static extern int ReleaseDC(IntPtr hwnd, IntPtr dc);
[DllImport("gdi32.dll")]
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
IntPtr primary = GetDC(IntPtr.Zero);
int DESKTOPVERTRES = 117;
int DESKTOPHORZRES = 118;
int actualPixelsX = GetDeviceCaps(primary, DESKTOPHORZRES);
int actualPixelsY = GetDeviceCaps(primary, DESKTOPVERTRES);
ReleaseDC(IntPtr.Zero, primary);
- 1. ¿Cómo obtener resolución de pantalla en C++?
- 2. C# - ¿Por qué una aplicación winform de pantalla completa SIEMPRE no cubre la barra de tareas?
- 3. Obtener resolución de pantalla
- 4. Objetivo C: ¿cómo obtener la resolución de pantalla actual?
- 5. Resolución de pantalla Silverlight
- 6. Obtener y establecer la resolución de pantalla
- 7. ¿Cómo obtener la resolución de la pantalla? Para una aplicación WinRT?
- 8. pantalla de código java resolución
- 9. Obtener resolución de pantalla mediante programación en OS X
- 10. Resolución de pantalla de Android
- 11. Programación de Android: resolución de pantalla
- 12. declaración condicional para la resolución de pantalla?
- 13. XNA - Obtenga la resolución de pantalla actual
- 14. ¿Cómo saber la resolución de pantalla en "DP"?
- 15. Cómo agregar ayuda a la aplicación winform C#
- 16. ¿Cómo acomodar la resolución de la pantalla del iPhone 4?
- 17. Resolución de píxeles de pantalla en mm
- 18. ¿Cómo consultar la resolución de la pantalla X11?
- 19. ¿Cómo puedo obtener la resolución de la pantalla en R
- 20. ¿Cómo puedo obtener una resolución de pantalla en java?
- 21. Implementación de MVVM para la aplicación WinForm
- 22. cómo obtener una resolución de pantalla del usuario con PHP
- 23. ¿Cómo obtener la resolución de pantalla de su dispositivo Android ...?
- 24. en la aplicación para iPhone Cómo detectar la resolución de pantalla del dispositivo
- 25. Cómo obtener la resolución de pantalla del navegador en vivo
- 26. CSS: la resolución de problemas de la pantalla absoluta
- 27. css obtener la altura de la resolución de pantalla
- 28. Posición winform en la esquina inferior izquierda de la pantalla
- 29. Pantalla completa C# Aplicación
- 30. Dimensionamiento el contenido de encajar en una resolución de pantalla
+1 para Screen.WorkingArea. Por error, he estado usando Screen.Bounds. Te daría +2 si pudiera, por mencionar Screen.FromControl en lugar de Screen.PrimaryScreen. – ToolmakerSteve