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

时间:2014-06-24 15:57:01

标签: javascript windows-phone winjs windows-phone-8.1

有谁知道如何在javascript Windows Phone 8.1应用程序中启用状态栏(图片)?我在Visual Studio 2013中使用带有Update 2的javascript数据透视表模板。

enter image description here

2 个答案:

答案 0 :(得分:6)

例如,您必须在页面的ready函数中添加一些JavaScript。

首先获取当前视图的状态栏。而不是决定如何处理它:

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

有关状态栏的更多信息,请访问MSDN

答案 1 :(得分:1)

@Sorskoot的回答给了我很多帮助,但我只花了一个小时找到如何改变状态栏的背景颜色。所以我将分享(作为启用状态栏并设置它的颜色通常一起):

以下代码显示状态栏(或顾名思义) 向消息队列提交请求以执行此操作)

var s = Windows.UI.ViewManagement.StatusBar.getForCurrentView();
s.showAsync(); 

如果你尝试设置这样的颜色

// THIS IS WRONG
s.backgroundColor = 'red';
s.backgroundColor = '#A65959';

这不起作用,抛出错误: 0x800a13ec - JavaScript runtime error: Could not convert object to struct: object missing expected property 'a'

这是因为s.backgroundColor是  不是HTML对象,而是WinRT运行时对象,因此我们需要使用'Color'结构 WinRT,与HTML / JS颜色概念没什么关系。

但首先让我们先修复透明度(不透明度)。 默认情况下,条形图的bg图层是完全透明的。设置它的不透明度 到1.0使其完全不透明。

<强> TL; DR;

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

上面我们使用helper类来构建WinRT Color结构。注意不透明度 在助手参数中的范围是0-255。但是在s.backgroundOpacity中它是 漂浮在范围[0..1] >:o

Windows.UI.Colors中有一堆预定义的颜色常量,但介意 camelCasing (例如lightGray),这与HTML / JS颜色命名约定不同)