Come posso recuperare la risoluzione dello schermo su cui è in esecuzione la mia app C# Winform?Come recuperare la risoluzione dello schermo da un'app Winform C#?
risposta
Ti serve solo l'area che userebbe un'applicazione standard, ad esclusione della barra delle applicazioni di Windows e delle finestre ancorate? In tal caso, utilizzare Screen.WorkingArea property. Altrimenti, utilizzare Screen.Bounds.
Se ci sono più monitor, è necessario per afferrare lo schermo dalla forma, vale a dire
Form myForm;
Screen myScreen = Screen.FromControl(myForm);
Rectangle area = myScreen.WorkingArea;
Se volete sapere quale è il display primario, utilizzare la proprietà Screen.Primary. Inoltre, è possibile ottenere un elenco di schermate dalla proprietà Screen.AllScreens.
Utilizzare la classe Screen e interrogare la proprietà Bounds. La classe Screen ha una proprietà statica per Primary Screen e un'altra proprietà statica che restituisce a list of all the screens attached to the system.
+1 per collegamento a Screen.AllScreens. – ToolmakerSteve
Screen.PrimaryScreen.WorkingArea.Size()
La risposta data è corretta, per quanto possibile. Tuttavia, quando si imposta la dimensione del testo su un valore superiore al 125%, Windows (e .NET) iniziano a ingrandire le dimensioni dello schermo per eseguire automaticamente il ridimensionamento automatico.
La maggior parte delle volte non si tratta di un problema: in genere si desidera eseguire Windows e .NET. Tuttavia, nel caso in cui tu abbia davvero bisogno di conoscere il conteggio effettivo dei pixel sullo schermo (ad esempio, vuoi dipingere direttamente sul desktop DC), puoi fare quanto segue. Ho provato solo su Win10. YMMV su altre versioni di Windows.
Finora, questo è l'unico modo che ho trovato per ottenere il conteggio dei pixel dello schermo vero se non si desidera disattivare globalmente la consapevolezza DPI nell'app. Si noti che questo esempio ottiene la dimensione di visualizzazione primaria: sarà necessario modificarlo per ottenere altre schermate.
[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. Come ottenere la risoluzione dello schermo in C++?
- 2. Ottieni risoluzione nativa dello schermo
- 3. Qual è la risoluzione dello schermo dell'iPhone?
- 4. Ottenere la risoluzione dello schermo usando PHP
- 5. Come ridimensionare la jframe alla risoluzione dello schermo in netbeans?
- 6. Android: Ottieni la risoluzione dello schermo/pixel come valori interi
- 7. Come posso ottenere la risoluzione dello schermo in R
- 8. Come posso ottenere la risoluzione dello schermo in java?
- 9. Come ottenere la risoluzione dello schermo in Android Honeycomb?
- 10. Come rilevare la modifica della risoluzione dello schermo in Delphi?
- 11. Risoluzione dello schermo nell'app UWP Win10
- 12. Ottieni la risoluzione dello schermo su un sito web mobile
- 13. Risoluzione dello schermo su un'app PhoneGap
- 14. Ridimensionamento della risoluzione dello schermo JavaFX
- 15. XNA - Ottieni risoluzione dello schermo corrente
- 16. Quale risoluzione dello schermo dovrei usare?
- 17. Qual è la risoluzione dello schermo più popolare di oggi?
- 18. Ottieni la risoluzione dello schermo reale su Ice Cream Sandwich
- 19. QT ottenere la risoluzione dello schermo senza il monitor esteso
- 20. Cambia la risoluzione dello schermo ospite MacOS X per VirtualBox
- 21. Come gestire diverse dimensioni dello schermo/risoluzione dello schermo durante lo sviluppo di un sito?
- 22. jQuery Risoluzione schermo Risoluzione altezza
- 23. Come cambiare la risoluzione dello schermo usando QT, OpenGL, C++ e Linux?
- 24. Come ottenere una cattura dello schermo a doppia risoluzione?
- 25. Regolare la luminosità dello schermo utilizzando C#
- 26. Programmazione Android - risoluzione schermo
- 27. Cambiamenti nella risoluzione dello schermo dell'iPhone nell'hardware futuro
- 28. Ridimensionare le immagini in base alla risoluzione dello schermo Android
- 29. Dimensione del carattere relativa alla risoluzione dello schermo dell'utente?
- 30. Interrogazione multimediale sulla dimensione dello schermo anziché sulla risoluzione
+1 per Screen.WorkingArea. Ho erroneamente utilizzato Screen.Bounds. Ti darei +2 se potessi, per menzionare Screen.FromControl invece di Screen.PrimaryScreen! – ToolmakerSteve