Recuperar la altura de la bandeja del sistema WP (área de notificación)
-
26-12-2019 - |
Pregunta
Para algunos cálculos de diseño de control, necesito saber la altura del área de notificación.Claro, sé que equivale a 32 píxeles en modo vertical en WP 7/8/8.1, pero no es una buena idea codificar este valor para futuras versiones del sistema operativo.¿Cómo puedo recuperar este valor sobre la marcha en una aplicación Silverlight?
Solución 3
Encontré una solución.Podemos determinar el desplazamiento vertical para el control principal de la raíz de diseño (generalmente una cuadrícula), y será la altura de la bandeja del sistema:
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
GeneralTransform gt = LayoutRoot.TransformToVisual(Application.Current.RootVisual as UIElement);
Point offset = gt.Transform(new Point(0, 0));
double systemTrayHeight = offset.Y;
}
Otros consejos
No puedes obtener la altura del área de notificación por código.
sus estándares son Pre-Defined
.
System Tray
es la pequeña barra en la parte superior de la pantalla del teléfono.Se muestra en modo vertical.Cuando su aplicación está configurada en modo vertical, el height
de la bandeja del sistema se vuelve 32 pixel
y cuando la aplicación está configurada en Landscape mode
, el ancho de la bandeja del sistema se vuelve 72 pixel
.Esto cumple con las Pautas de diseño de interfaz de usuario y las Pautas de interacción de Windows Phone 7.
Puedes obtener más información aquí sobre lo que es accesible
double contentScaleFactor = (double)Application.Current.Host.Content.ScaleFactor / 100;
double systemTrayHeight = 32 / contentScaleFactor;
o 72 para orientación horizontal.Teléfonos como la escala de Lumia 1520 La aplicación se contenta, por lo que tiene que ajustarlo.