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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top