12

¿Cómo puedo obtener una resolución de pantalla del Dispositivo desde la configuración (Windows Phone)?¿Cómo puedo obtener una resolución de pantalla del Dispositivo (Windows Phone)

+2

posible duplicado de [Cómo llegar tamaño de la pantalla en Windows Phone 7 Series?] (Http://stackoverflow.com/questions/2596732/how-to-get-screen-size-on-windows-phone -7-series) – katrielalex

+0

¿Para qué lo necesitas? La resolución es la misma. –

+1

Es ahora, pero habrá más resoluciones posibles después de la próxima actualización del sistema, por lo que puede ser una buena razón para ese tipo de preguntas. – MarcinJuraszek

Respuesta

21
public void GetScreenResolution() 
{ 
    string ScreenWidth = Application.Current.Host.Content.ActualWidth.ToString(); 
    string ScreenHeight = Application.Current.Host.Content.ActualHeight.ToString(); 
    MessageBox.Show(ScreenWidth + "*" + ScreenHeight); 
} 
+1

Funciona por supuesto (hacerlo de la misma manera para mi aplicación DeviceInfo) pero no olvide que si utiliza SDK 7.1 (para admitir dispositivos 7.x) dará como resultado valores incorrectos cuando se ejecute en WP8. – hfrmobile

+0

En mi Lumia 925 con WP8.1, devuelve 480x800, mientras que los sitios de especificaciones afirman que la resolución es de 768x1280. Algo está fuera de aquí. –

6

Esta puede ser una mejor manera de saber en qué resolución de pantalla se está ejecutando su aplicación.

if(App.Current.Host.Content.ScaleFactor == 100) 
{ 
    // WVGA 
} 
else if (App.Current.Host.Content.ScaleFactor == 160) 
{ 
    // WXGA 
} 
else if (App.Current.Host.Content.ScaleFactor == 150) 
{ 
    // 720p 
} 

Fuente http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206974%28v=vs.105%29.aspx

+0

¡Lo intentaré! – hfrmobile

+2

¿Y si MS agrega otro factor de escala para FullHD, por ejemplo? downvote para hardcode – Grigory

+2

Esto es directamente del sitio web de Microsoft vinculado anteriormente. Por supuesto, si se agregan nuevas resoluciones/factores de escala, entonces agrega otro condicional en el código anterior. ¿Crees que hay una forma de evitarlo? No vote abajo sin ninguna razón. –

1
+0

gracias, ¡ayuda mucho! –

+0

Parece correcto, pero, como se describe en http://stackoverflow.com/a/14018398/1130789, fallará cuando Microsoft agregue otra resolución de pantalla. Especialmente dado que no hay manejo de excepción si ninguno de los factores de escala coincide. Así que al menos agrega una sección predeterminada a tu condición de interruptor. – S0me0ne

1

En realidad, esto requiere una combinación de @Dmitriy Reznik y respuestas @Paras Wadehra 's, como las dimensiones expuestas por Host.Content son dimensiones sin escalar.

var content = App.Current.Host.Content; 

var screenResolution = new Size(
    content.ActualWidth*content.ScaleFactor/100, 
    content.ActualHeight*content.ScaleFactor/100); 
+0

Otra forma de saber la escala de visualización es: 'DisplayProperties.LogicalDpi/96.0f' – Igor

Cuestiones relacionadas