Получить WP системный трей (область уведомлений) высота
Для некоторых вычислений макета элемента управления мне нужно знать высоту области уведомлений. Конечно, я знаю, что он равен 32 пикселям в портретном режиме в WP 7/8/8.1, но не стоит кодировать это значение для будущих выпусков ОС. Как я могу получить это значение на лету в приложении Silverlight?
3 ответа
Нашел обходной путь. Мы можем определить вертикальное смещение для корневого элемента управления основного макета (обычно Grid), и это будет высота системного трея:
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;
}
double contentScaleFactor = (double)Application.Current.Host.Content.ScaleFactor / 100;
double systemTrayHeight = 32 / contentScaleFactor;
Или 72 для альбомной ориентации. Телефоны, такие как Lumia 1520, увеличивают контент приложения, поэтому вам придется подстраиваться под него.
Вы не можете получить высоту области уведомлений по коду.
его стандарты Pre-Defined
,System Tray
это маленькая полоска в верхней части экрана телефона. Отображается в портретном режиме. Когда ваше приложение установлено в портретном режиме, height
из системного трея становится 32 pixel
и когда приложение установлено в Landscape mode
ширина системного трея становится 72 pixel
, Это соответствует Руководству по проектированию пользовательского интерфейса и Руководству по взаимодействию в Windows Phone 7.
Вы можете получить больше информации здесь о том, что доступно