对于一些控件布局计算,我需要知道通知区域的高度。当然,我知道它在 WP 7/8/8.1 中的纵向模式下等于 32 像素,但在操作系统的未来版本中硬编码这个值并不是一个好主意。如何在 Silverlight 应用程序中即时检索此值?
问问题
484 次
3 回答
1
您无法通过代码获取通知区域的高度。
它的标准是Pre-Defined
。
System Tray
是电话屏幕顶部的小条。它以纵向模式显示。当您的应用程序设置为纵向模式时,height
系统托盘的宽度变为32 pixel
,当应用程序设置为 时Landscape mode
,系统托盘的宽度变为72 pixel
。这是根据 Windows Phone 7 的 UI 设计指南和交互指南。
您可以在此处获取有关可访问内容的更多信息
于 2014-06-05T10:43:01.500 回答
1
double contentScaleFactor = (double)Application.Current.Host.Content.ScaleFactor / 100;
double systemTrayHeight = 32 / contentScaleFactor;
或 72 用于横向。像 Lumia 1520 这样的手机可以放大应用内容,所以你必须进行调整。
于 2014-08-07T16:40:54.180 回答
0
找到了解决方法。我们可以确定主布局根控件(通常是 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;
}
于 2014-06-05T11:35:30.437 回答