Come ottenere le dimensioni dello schermo sulla serie di Windows Phone 7?
-
25-09-2019 - |
Domanda
Come posso ottenere programmaticamente la risoluzione dello schermo su WP7? Ecco un sacco di link che fanno lo stesso lavoro svolto in WPF Desktop e Silverlight, ma nessuno di loro è nel telefono SDK.
Qualche idea?
http://social.msdn.microsoft.com/forums/en-us/windowsphones7series/thread/f0639904-a368-44db-9dd-efcaf8fc736e
http://social.msdn.microsoft.com/forums/en-us/wpf/thread/6b6b832f-0dfd-428c-84cd-b1b9e7f236cf
Come posso ottenere le dimensioni dello schermo attivo?
http://social.msdn.microsoft.com/forums/en-us/windowsphones7series/thread/f0639904-a368-44db-9dd-efcaf8fc736e
Soluzione
Sembra che Application.Current.RootVisual.Rendersize ti fornirà tali informazioni.
Altri suggerimenti
Uso questo:
this.ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth;
this.ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight;
Molti modi per scuoiare un'app. Se è per XAML, è possibile legarsi alle proprietà del layoutroot.
Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}"
Non posso ancora giù/voto(In realtà, ora posso e l'ho fatto), ma vorrei sottolineare che la risposta di "Luke Puplett" tra cui applicazione.Current.host.Content è quella corretta, non "Andréas Saudemont" che consiglia di rendering.
Userò i nomi comunemente usati nei tutorial o nelle applicazioni di esempio da MSDN.
Dico che host.current è più adeguato, perché all'inizio dell'applicazione, specialmente sul WP7 (non so come sia su "regolare" SL3/SL4 su PC), cioè, ad esempio, nel Il costruttore della prima pagina: la proprietà renderrize non è ancora impostata correttamente, poiché il "rootvisuale" dell'applicazione è in fase di costruzione e non è stata ancora assegnata in "App.xaml.cs". Almeno in quel punto, rendersize = size {0,0}
D'altra parte, se solo l'app si avvia correttamente, Host.Content è impostato su un po 'di telefono, che è correttamente di dimensioni integrali e ruotata nella posizione dello schermo effettivo. Immagino che all'inizio è la schermata di splash iniziale (vuoto o statico dal file jpg)
Se si desidera accedere alle dimensioni del display all'interno di un gioco XNA, usa questo:
graphics.GraphicsDevice.DisplayMode.Width
e
graphics.GraphicsDevice.DisplayMode.Height
Dove la grafica è la graphicdevicemanager del gioco attuale!
Intero schermo:
(App.Current.RootVisual as FrameworkElement).ActualHeight
(App.Current.RootVisual as FrameworkElement).ActualWidth
Pagina corrente:
Se vuoi conoscere la dimensione visibile (prendendo in considerazione AppBar / SystemTray), chiedi invece la pagina.