Windows Store App JavaScript 开发:WinJS库控件

在介绍了如何使用标准的HTML控件以及WinJS库中提供的新控件之后,下面来着重介绍WinJS库中几种常用的控件。

1ListView控件

在开发Windows应用商店应用时可以使用ListView控件以网格或列表的方式显示多条数据。ListView控件的常用属性有:

q  groupDataSource属性,用来设置分组的数据源。

q  groupHeaderTemplate属性,用来为分组的头部设置模板。

q  itemDataSource属性,用来为组中的数据项设置数据源。

q  itemTemplate属性,用来为组中的数据项设置模板。

q  selectionMode属性,用来设置数据项的选择模式,属性值有“none”、“single”和“multi”。当该属性的值为“none”时表示不允许选择数据项;当值为“single”时表示只可以选择一个数据项;当值为“multi”时表示可以选择多个数据项。

q  layout属性,用来设置ListView控件的布局,该属性的值是Object类型,属性值有“{type:WinJS.UI.GridLayout}”和“{ type:WinJS.UI.ListLayout}”。当该属性的值为“{type:WinJS.UI.GridLayout}”时,ListView控件会以网格形式显示数据;当值为“{ type:WinJS.UI.ListLayout}”时,ListView控件会以列表形式显示数据。

在应用程序中使用ListView控件来显示多条数据时,对ListView控件的不同操作会触发不同的事件,该控件的常用事件有:

q  oniteminvoked件,当单击数据项时会触发该事件

q  onkeyboardnavigating事件,使用键盘上的方向键改变选区内的焦点时会触发该事件。

q  onselectionchanged事件,当选择发生改变时会触发该事件。

在介绍了ListView控件的常用属性和事件后,下面来看一下如何向页面中添加ListView控件,以及如何为ListView控件设置属性和注册事件处理函数。

可以通过在页面中定义一个div元素并将data-win-control属性设置为“WinJS.UI.ListView”来向页面中添加ListView控件,同时可以通过div元素的data-win-options属性设置ListView控件的属性。例如,要在一个页面中添加一个ListView控件并以网格形式显示数据,那么可以在这个页面的body元素内定义一个div元素,并将data-win-control属性设置为WinJS.UI.ListView,同时通过data-win-options属性设置ListView控件的layout属性值为“{type:WinJS.UI.GridLayout}”,相应的HTML代码片段如下所示:

<div id="listviewID" data-win-control="WinJS.UI.ListView" data-win-options="{layout: {type: WinJS.UI.GridLayout}}"></div>

添加了ListView控件之后,可以在后台使用addEventListener函数来为其注册相关事件的处理函数。例如为上面示例中的ListView控件注册oniteminvoked事件的处理函数InvokeItemHandler,相应的JavaScript代码片段如下所示:

var listview = document.getElementById("listviewID").winControl;

listview.addEventListener("iteminvoked", InvokeItemHandler);

function InvokeItemHandler() {

    /* 在此处编写事件处理过程的代码 */

}

在上面的代码中,首先以“listviewID”作为参数调用document对象的getElementById函数并使用winControl属性获得id属性值为listviewID的元素对象,并赋值给变量listview。然后通过listview变量调用元素对象的addEventListener函数为oniteminvoked事件注册事件处理函数InvokeItemHandler,在InvokeItemHandler函数中编写处理这个事件的过程代码。

2HtmlControl控件

可以在一个页面中使用HtmlControl控件来显示另一个页面的内容。这个控件有一个uri属性,该属性的值为被显示页面的地址,通过赋予该属性不同的值,可在HtmlControl控件所在的位置加载不同的页面。与ListView控件类似,可以通过在一个页面的body元素中定义一个div元素并将data-win-control属性设置成“WinJS.UI.HtmlControl”来向这个页面中添加HtmlControl控件,同时可以通过div元素的data-win-options属性设置HtmlControl控件的属性。

例如,要在一个现有项目的default.html页面中显示项目根目录下的IncludedPage.html页面的内容,那么可以在default.html页面的body元素中定义一个div元素并将data-win-control属性设置成“WinJS.UI.HtmlControl”,同时通过div元素的data-win-options属性设置HtmlControl控件的uri属性值为IncludedPage.html页面的地址,相应的HTML代码片段如下所示:

<div data-win-control="WinJS.UI.HtmlControl" data-win-options="{uri: '/IncludedPage.html'}"></div>

3PageControl控件

PageControl控件是一种自定义控件,可以将一个页面的内容和逻辑功能定义成一个PageControl控件,然后通过在其他页面中添加这个PageControl控件来加载相应的页面内容,这样就方便了在多个页面中加载相同的页面内容。

可以使用WinJS.UI.Pages命名空间下的define函数来将一个页面定义成PageControl控件,该函数有urimembers两个参数,其中uri表示页面的地址,members是对这个页面中的成员进行的一些初始化操作,该函数执行完成后会返回一个PageControl类型的对象,语法格式如下所示:

var pageControlObject = WinJS.UI.Pages.define(uri, members);

定义了PageControl控件后,如果想要向一个页面中添加这个控件,可以在该页面的body元素中定义一个div元素并将data-win-control属性设置为define函数所返回的PageControl对象,同时还需要在这个页面的head元素中引用定义PageControl控件的Javscript文件。

4Menu控件

在开发应用程序时使用Menu控件可以创建命令菜单弹出窗口。Menu控件的常用属性有:

q  alignment属性,用于设置命令项的对齐方式,属性值有“center、“left和“right,默认值为“center”。

q  commands属性,用于向菜单弹出窗口中添加命令。

q  hidden属性,用于判断Menu控件是否隐藏。

q  placement属性,用于设置菜单弹出窗口的默认位置,属性值有“autotopbottomleft和“right,默认值为“auto

当对Menu控件进行操作时,不同的操作会触发不同的事件,该控件的事件有:

q  onafterhide事件,命令菜单弹出窗口被隐藏之后会触发该事件。

q  onaftershow事件,命令菜单弹出窗口显示后会触发该事件。

q  onbeforehide事件,命令菜单弹出窗口被隐藏之前会触发该事件。

q  onbeforeshow事件,已被隐藏的命令菜单弹出窗口显示前会触发该事件。

  

在介绍了Menu控件的常用属性和事件后,下面来看一下如何向页面中添加Menu控件,以及如何为Menu控件设置属性和注册事件处理函数。

通过在页面中定义一个div元素并将data-win-control属性设置为“WinJS.UI.Menu”可以向页面中添加Menu控件,但只能通过编写JavaScript代码的方式为Menu控件设置属性。例如,要向一个页面中添加一个Menu控件并设置命令项的对齐方式为左对齐,那么可以在这个页面的body元素内定义一个div元素并将div元素的data-win-control属性设置成“WinJS.UI. Menu”,为了能检索到这个div元素,设置它的id属性值为“menuID”。相应的HTML代码片段如下所示:

<div id="menuID" data-win-control="WinJS.UI.Menu"></div>

这样就向这个页面中添加了Menu控件,然后在后台编写JavaScript代码来设置这个Menu控件的alignment属性值为“left”,JavaScript代码片段如下所示:

var menuControl = document.getElementById("menuID").winControl;

menuControl.alignment = "left";

添加了Menu控件之后,除了能够后台设置控件的属性之外,还可以在后台使用addEventListener函数来为其注册相关事件的处理函数。例如,为上面示例中的Menu控件注册onafterhide事件的处理函数HideMenuHandler,相应的JavaScript代码片段如下所示:

var menuControl= document.getElementById("menuID").winControl;

menuControl.addEventListener("afterhide", HideMenuHandler);

function HideMenuHandler() {

    /* 在此处编写事件处理过程的代码 */

}

在上面的代码中,首先以“menuID”作为参数调用document对象的getElementById函数并使用winControl属性获得id属性值为menuID的元素对象,并赋给变量menuControl。然后通过menuControl变量调用元素对象的addEventListener函数为onafterhide事件注册处理函数HideMenuHandler,在HideMenuHandler函数中编写处理这个事件的过程代码。

posted on 2015-01-19 22:13 冯瑞涛 阅读( ...) 评论( ...) 编辑 收藏
阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Windows.UI.Popups 命名空间包含用于创建弹出对话框的类。如果要在 JavaScript 中使用这个命名空间,可以使用以下方法之一: 1. 在 HTML 中使用 script 标签引入 Microsoft.WinJS 。在使用 Windows.UI.Popups 命名空间之前,需要在代码中加载 Microsoft.WinJS 。 ```html <script src="/js/winjs/base.js"></script> ``` 2. 在 JavaScript 代码中使用 require 函数引入 Windows.UI.Popups 命名空间。 ```js var popups = require("Windows.UI.Popups"); ``` 3. 在 JavaScript 代码中使用 ECMAScript 6 的 import 语句引入 Windows.UI.Popups 命名空间。 ```js import { MessageDialog } from "Windows.UI.Popups"; ``` 注意:这些方法仅适用于在 Windows 应用中使用 JavaScript。如果您的 JavaScript 代码是用于 Web 应用或其他非 Windows 应用程序,则不能使用 Windows.UI.Popups 命名空间。 ### 回答2: 要引入Windows.UI.Popups命名空间,在js中可以使用以下步骤: 首先,在你的JavaScript文件的开头添加以下代码: ```javascript import { MessageDialog } from 'Windows.UI.Popups'; ``` 这行代码将会导入Windows.UI.Popups命名空间中的MessageDialog类。 接下来,在你的代码中就可以使用MessageDialog类来创建一个弹窗对话框了。例如,以下是创建一个简单的弹窗对话框并显示的代码: ```javascript var dialog = new MessageDialog("欢迎使用这个应用程序!"); dialog.showAsync(); ``` 上述代码会创建一个MessageDialog对象,并将一条欢迎消息作为参数传递给构造函数。然后,使用showAsync()方法来显示对话框。 需要注意的是,在引入Windows.UI.Popups命名空间之前,你需要确保你的代码是在Windows环境下运行的,因为Windows.UI.Popups命名空间是在Windows系统上才可用的。 希望这些信息对你有帮助! ### 回答3: 要引入Windows.UI.Popups命名空间,你可以通过在JavaScript文件的开头使用import语句来实现。在引入命名空间之前,确保在你的Windows应用项目中已正确添加了Windows.UI.Popups命名空间的引用。 在JavaScript文件的开头,使用以下语法来引入命名空间: import Windows.UI.Popups; 这将使得Windows.UI.Popups命名空间下的所有类、方法和属性都能在当前的JavaScript文件中使用。 注意:在引入命名空间之前,你需要确保你的Windows应用项目已正确添加了Windows.UI.Popups命名空间的引用。确保在你的项目文件夹中的References或Dependencies目录下能找到Windows.UI.Popups。如果没有找到,你需要手动添加该引用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯瑞涛TerryFeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值