【问题标题】:Enable the status bar in the Windows Phone javascript templates for Visual Studio 2013在 Visual Studio 2013 的 Windows Phone javascript 模板中启用状态栏
【发布时间】:2015-01-15 16:59:07
【问题描述】:

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

【问题讨论】:

  • 我花了一段时间才找到这个问题,因为首先我在搜索“标题栏”“电话栏”“操作栏”“应用程序栏”“应用程序栏”......但事实证明它是“状态栏”或更确切地说是“状态栏”:S

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


【解决方案1】:

例如,您必须将一些 JavaScript 添加到页面的就绪函数中。

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

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

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

【讨论】:

    【解决方案2】:

    @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 运行时对象,因此我们需要使用“颜色”结构 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;
    

    上面我们使用帮助类来构建一个 WinRT Color 结构。注意不透明度 在辅助参数中的范围为 0-255。然而在 s.backgroundOpacity 它是 浮动范围 [0..1] >:o

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

    【讨论】:

      猜你喜欢
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      相关资源
      最近更新 更多