¿Cómo obtener el tamaño de la pantalla en la serie Windows Phone 7?
-
25-09-2019 - |
Pregunta
¿Cómo obtengo programáticamente la resolución de pantalla en WP7? Aquí hay un montón de enlaces que hacen el mismo trabajo en el escritorio WPF y Silverlight, pero ninguno de ellos está en el SDK del teléfono.
¿Algunas ideas?
http://social.msdn.microsoft.com/forums/en-us/windowsphone7series/thread/f0639904-a368-44db-9ddd-efcaf8fc736e
http://social.msdn.microsoft.com/forums/en-us/wpf/thread/6b6b832f-0dfd-428c-84cd-b1b9e7f236cf
¿Cómo puedo obtener las dimensiones activas de la pantalla?
http://social.msdn.microsoft.com/forums/en-us/windowsphone7series/thread/f0639904-a368-44db-9ddd-efcaf8fc736e
Solución
Parece que Application.Current.Rootvisual.Rendersize le dará esa información.
Otros consejos
Yo uso esto:
this.ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth;
this.ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight;
Muchas formas de desactivar una aplicación. Si es para XAML, puede unirse a las propiedades del LayoUtroot.
Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}"
Todavía no puedo bajar/votar(en realidad, ahora puedo y lo hice), pero me gustaría señalar que la respuesta de "Luke Puplett", incluida la aplicación.current.host.content es la correcta, no ", Andréas Saudemont" es una que aconseja Rendersize.
Usaré nombres que se usan comúnmente en tutoriales o aplicaciones de muestra de MSDN.
Digo que el host. Current es más adecuado, porque al inicio de la aplicación, especialmente en el WP7 (no sé cómo está en SL3/SL4 en PC) "regular", es decir, por ejemplo, en el El constructor de la primera página: la propiedad RenderSize aún no se establece correctamente, ya que el "Rootvisual" de la aplicación se está construyendo y aún no se ha asignado en "App.xaml.cs". Al menos en ese punto, el renderersize = size {0,0}
Por otro lado, si solo la aplicación comienza correctamente, el host.content está configurado en algún marco de teléfono, que es correctamente del tamaño de una pantalla completa y se gira a la posición de pantalla real. Supongo que en el mismo comienzo es la pantalla de compensación inicial (vacía o estática del archivo jpg)
Si desea acceder al tamaño de la pantalla desde un juego XNA, use esto:
graphics.GraphicsDevice.DisplayMode.Width
y
graphics.GraphicsDevice.DisplayMode.Height
¡Donde los gráficos son el GraphicDeviceManager del juego actual!
Pantalla completa:
(App.Current.RootVisual as FrameworkElement).ActualHeight
(App.Current.RootVisual as FrameworkElement).ActualWidth
Página actual:
Si desea conocer el tamaño visible (tomando en cuenta AppBar / SystemTray), simplemente solicite la página.