在Visual Studio 2013的Windows Phone JavaScript模板中启用状态栏

4

有人知道如何在JavaScript的Windows Phone 8.1应用程序中启用状态栏(如图片所示)吗?我正在使用Visual Studio 2013带有Update 2的JavaScript Pivot模板。


我花了一些时间才找到这个问题,因为我一开始搜索的是“标题栏”、“电话栏”、“操作栏”、“应用程序栏”、“应用栏”等等,但事实证明它是“状态栏”,或者更确切地说是“状态栏” :S - Dimitry K
2个回答

6

例如,您需要在页面的ready函数中添加一些JavaScript代码。

首先获取当前视图的状态栏。然后决定该如何处理:

var s = Windows.UI.ViewManagement.StatusBar.getForCurrentView();
s.showAsync(); // shows the statusbar

可在MSDN了解有关状态栏的更多信息。


1
@Sorskoot的答案对我帮助很大,但我仍花了一个小时才找到如何更改状态栏的背景颜色。因此,我将分享以下内容(因为启用状态栏和设置其颜色通常一起进行):
下面的代码显示状态栏(或者按照名称建议提交请求到消息队列来执行):
var s = Windows.UI.ViewManagement.StatusBar.getForCurrentView();
s.showAsync(); 

如果您尝试像这样设置颜色:
// THIS IS WRONG
s.backgroundColor = 'red';
s.backgroundColor = '#A65959';

这样做是不行的,会抛出错误: 0x800a13ec - JavaScript运行时错误:无法将对象转换为结构:缺少预期属性'a'的对象

这是因为s.backgroundColor不是HTML对象,而是WinRT运行时对象,因此我们需要使用WinRT的“Color”结构体,这与HTML/JS颜色概念几乎没有关系。

但首先让我们先修复透明度(不透明度)。默认情况下,条形图的背景层完全透明。将其不透明度设置为1.0即可使其完全不透明。

简而言之;

// THIS IS RIGHT
s.backgroundOpacity = 0.99; 
s.backgroundColor = Windows.UI.ColorHelper.fromArgb(255, 0xA6, 0x59, 0x59);
s.foregroundColor = Windows.UI.Colors.lightGray;

上面我们使用辅助类来构建WinRT颜色结构。请注意,不透明度在辅助参数中的范围为0-255。但是在s.backgroundOpacity中,它是[0..1]范围内的浮点数>:oWindows.UI.Colors中有一堆预定义的颜色常量,但要注意驼峰命名(例如lightGray),这与HTML / JS颜色命名约定不同。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接