控件(使用JavaScript的HTML)

将新功能添加到 Windows 应用商店应用,例如自定义命令和和增强导航支持,以及 Windows 8.1 Preview 中的全新 HTML 和 JavaScript 控件。 对现有控件的更新可使这些控件更易于使用和添加更多功能,如拖放操作支持。 这些新控件和控件更新让创建功能齐全的应用变得***的简单。

成都网络公司-成都网站建设公司创新互联建站10余年经验成就非凡,专业从事成都做网站、成都网站建设,成都网页设计,成都网页制作,软文发布平台广告投放平台等。10余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18982081108,我们期待您的来电!

新控件和控件更新

Windows 8.1 Preview 和适用于 JavaScript 2.0 Preview 的 Windows 库中引入了以下新控件和功能:

  • AppBarCommand
  • BackButton
  • Hub(中心)
  • ItemContainer
  • NavBar
  • Repeater
  • WebView

Windows 8.1 Preview 和适用于 JavaScript 2.0 Preview 的 Windows 库中包括这些现有控件的更新:

  • 对 ListView 的拖放操作支持
  • 对 ListView 中的项目重新排序
  • 新 ListView 布局:CellSpanningLayout
  • 其他 ListView 更新
  • 其他 Windows JavaScript 库更新

使用适用于 JavaScript 2.0 Preview 的 Windows 库

新的 Microsoft Visual Studio 2013 Preview 项目中会自动包含适用于 JavaScript 2.0 Preview 的 Windows 库。若要在使用 Windows 8 创建的项目中使用适用于 JavaScript 2.0 Preview 的 Windows 库,请将你的现有适用于 JavaScript 1 的 Windows 库引用替换为

 
 
 
 
  1.  
  2.      
  3.      
  4.  
  5.      
  6.      
  7.      

对适用于 JavaScript 2.0 Preview 的 Windows 库的引用。

 
 
 
 
  1.  
  2.      
  3.      
  4.  
  5.      
  6.      
  7.      

Visual Studio 2013 Preview 可以自动为你升级项目,你也可以手动完成以下更新:

  • 向项目中添加对适用于 JavaScript 的 Windows 8.1 库的引用。
  • 在你的应用清单中,将 OSMinVersionOSMaxVersionTested 值更新为 6.3.0:
 
 
 
 
  1.  
  2.     6.3.0 
  3.     6.3.0 
  4.    

AppBarCommand

在 Windows 8.1 Preview 中,你可以使用一种名为“内容”的新型 AppBarCommand 在使用 JavaScript 的 Windows 应用商店应用中创建自定义应用栏命令。

此功能通过允许你在 commands 布局中放置自定义内容,从而简化了使用自定义内容创建应用栏的过程。你可以利用对使用自定义内容的应用栏命令的全面内置支持,包括键盘操作、命令定位,以及用于动态显示和隐藏命令的动画。

放入到 commands 布局中后,内容类型 AppBarCommand 支持很多与默认应用栏命令相同的功能。

  • 在默认应用栏命令和自定义 AppBarCommand 之间已启用键盘操作(Tab 键、箭头键、Home 键以及 End 键)。
  • 新的内容类型 AppBarCommand 能够正常使用应用栏可伸缩性。应用在被缩小之后会动态放弃文本标签。

BackButton

Windows 8.1 Preview 和适用于 JavaScript 2.0 Preview 的 Windows 库会以应用的控件形式向平台中添加更多导航支持。这些控件之一就是 BackButton

BackButton 为你提供一个向自己的应用中添加向后导航功能的简单方法。创建一个 BackButton 控件很简单。

 
 
 
 
  1.  

BackButton 会自动检查导航堆栈,以确定用户是否可以向后导航。如果没有可向后导航的内容,此按钮会自动禁用。当用户单击此按钮或使用键盘快捷方式(如 Alt+ 向左键或 BrowserBack 键)时,它会自动调用 WinJS.Navigation.back 函数以向后导航。你无需编写任何代码。

Hub(中心)

为了帮助提供更一致的导航体验,Windows 8.1 Preview 和适用于 JavaScript 2.0 Preview 的 Windows 库添加了 Hub 控件。

很多 Windows 应用商店应用都使用中心导航模式,即一种分层的导航系统。此模式最适合具有大量内容或许多不同部分内容供用户浏览的应用。

中心设计的实质是将内容分为不同的部分和不同级别的详细信息。 中心页是用户进入应用的入口点。此处的内容显示在一个水平平移或垂直平移的平移视图中,这样用户一眼就能看见新增内容和可用功能。 中心由不同类别的内容构成,每个类别映射到应用的部分页中。每个部分都应该显示内容或功能。中心应该提供许多可以看到的变化,吸引用户,并将他们吸引到应用的各个部分。

 

有了 Windows 8.1 Preview,Hub 控件可使创建中心页更容易。若要开始快速创建带有 Hub 页的应用,请使用 Visual Studio 2013 Preview 中的“中心应用”模板。

创建中心

若要创建中心,你需要为中心包含的每个部分添加一个 Hub 控件和一个 HubSection 对象。每个 HubSection 都可以包含任何类型的内容,包括其他 Windows JavaScript 库控件。你可以使用 header 属性来指定节标题。部分头文件可为静态或交互文件。交互式头文件显示可隐藏的 V 形图标,并在用户与它们交互时提升事件。

以下示例定义了一个包含三个部分的 Hub

 
 
 
 
  1.  
  2.  
  3.  
  4.      
  5.     hubPage 
  6.  
  7.      
  8.      
  9.      
  10.      
  11.  
  12.      
  13.      
  14.      
  15.      
  16.  
  17.  
  18.      
  19.          
  20.              
  21.              
  22.                 Hub example 
  23.              
  24.          
  25.  
  26.          
  27.              
  28.  
  29.  
  30.              
  31.                  
  32.                 
 
  •                 
  •  
  •                  
  •                      
  •                      
  •                      
  •                 
  •  
  •              
  •  
  •             
  •                 data-win-options="{ onheaderinvoked: HubPage.section2HeaderNavigate }"> 
  •                  
  •                      
  •                      
  •                          
  •                          
  •                          
  •                      
  •                  
  •                 
  •                         layout: {type: WinJS.UI.ListLayout2}, 
  •                         selectionMode: 'none', 
  •                         itemTemplate: select('.section2 .itemTemplate'),   
  •                         itemDataSource: HubPage.section2DataSource, 
  •                         oniteminvoked: HubPage.section2ItemNavigate 
  •                     }"> 
  •                  
  •              
  •  
  •              
  •                  
  •                      
  •                  
  •                  
  •                      
  •                      
  •                      
  •                  
  •                  
  •                  
  •                      
  •                      
  •                  
  •              
  •  
  •  
  •          
  •      
  •  
  •  
  • 该代码创建此页面。

     

    单击第二个标题时,应用会转到第二页。

     

    以下代码执行导航。

     
     
     
     
    1. (function () { 
    2.     "use strict"; 
    3.  
    4.     var nav = WinJS.Navigation; 
    5.     var session = WinJS.Application.sessionState; 
    6.     var util = WinJS.Utilities; 
    7.  
    8.     // Get the groups used by the data-bound sections of the hub. 
    9.     var section2Group = Data.resolveGroupReference("group1"); 
    10.     var section5Group = Data.resolveGroupReference("group6"); 
    11.  
    12.     WinJS.UI.Pages.define("/pages/hub/hub.html", { 
    13.         // This function is called whenever a user navigates to this page. It 
    14.         // populates the page elements with the app's data. 
    15.         ready: function (element, options) { 
    16.             var hub = element.querySelector(".hub").winControl; 
    17.             hub.onloadingstatechanged = function (args) { 
    18.                 if (args.srcElement === hub.element && args.detail.loadingState === "complete") { 
    19.                     this._hubReady(hub); 
    20.                     hub.onloadingstatechanged = null; 
    21.                 } 
    22.             }.bind(this); 
    23.  
    24.             hub.onheaderinvoked = function (args) { 
    25.                 args.detail.section.onheaderinvoked(args); 
    26.             }; 
    27.  
    28.             // TODO: Initialize the page here. 
    29.         }, 
    30.  
    31.         unload: function () { 
    32.             // TODO: Respond to navigations away from this page. 
    33.             session.hubScroll = document.querySelector(".hub").winControl.scrollPosition; 
    34.         }, 
    35.  
    36.         updateLayout: function (element, viewState, lastViewState) { 
    37.             ///  
    38.  
    39.             // TODO: Respond to changes in viewState. 
    40.         }, 
    41.  
    42.         _hubReady: function (hub) { 
    43.             ///  
    44.  
    45.             WinJS.Resources.processAll(); 
    46.             if (typeof session.hubScroll === "number") { 
    47.                 hub.scrollPosition = session.hubScroll; 
    48.             } 
    49.  
    50.             // TODO: Initialize the hub sections here. 
    51.         }, 
    52.     }); 
    53.  
    54.     function createHeaderNavigator(group) { 
    55.         return util.markSupportedForProcessing(function (args) { 
    56.             nav.navigate("/pages/section/section.html", { title: this.header, groupKey: group.key }); 
    57.         }); 
    58.     } 
    59.  
    60.     function createItemNavigator(group) { 
    61.         var items = Data.getItemsFromGroup(group); 
    62.         return util.markSupportedForProcessing(function (args) { 
    63.             var item = Data.getItemReference(items.getAt(args.detail.itemIndex)); 
    64.             nav.navigate("/pages/item/item.html", { item: item }); 
    65.         }); 
    66.     } 
    67.  
    68.     function getItemsDataSourceFromGroup(group) { 
    69.         return Data.getItemsFromGroup(group).dataSource; 
    70.     } 
    71.  
    72.     WinJS.Namespace.define("HubPage", { 
    73.         section2DataSource: getItemsDataSourceFromGroup(section2Group), 
    74.         section2HeaderNavigate: createHeaderNavigator(section2Group), 
    75.         section2ItemNavigate: createItemNavigator(section2Group), 
    76.         section5DataSource: getItemsDataSourceFromGroup(section5Group), 
    77.         section5ItemNavigate: createItemNavigator(section5Group) 
    78.     }); 
    79. })(); 

    你甚至可使用 Hub 控件和 SemanticZoom 控件。有关此控制和更多的示例,请参阅 HTML 中心控件示例。

    ItemContainer

    新的 ItemContainer 控件可简化创建交互式元素的过程,这些元素提供了轻扫、拖放以及悬停功能。只需将你的内容放到 ItemContainer 中即可。ItemContainer 可以包含标准 HTML 元素,甚至其他 Windows JavaScript 库控件。

    ItemContainer 很灵活,从而使其非常适合很多用途,如创建内容丰富的复选框组、导航按钮,以及购物车表示。

    当你希望显示项目,但又不需要使用全部 ListView 功能时,可以使用 ItemContainer 控件。

    使用 ItemContainer

    以下示例将创建两个 ItemContainer 对象,并将它们的 tapBehavior 属性设置为 toggleSelect 以便可以被选择。

     
     
     
     
    1.     data-win-control="WinJS.UI.ItemContainer" 
    2.     data-win-options="{tapBehavior: 'toggleSelect'}" 
    3.     style="width: 300px;"> 
    4.      
    5.         
    6.             style="margin-bottom: 5px;"> 
    7.             Banana 
    8.          
    9.          
    10.         
      Frozen yogurt
       
    11.      
    12.  
    13.     data-win-control="WinJS.UI.ItemContainer" 
    14.     data-win-options="{tapBehavior: 'toggleSelect'}" 
    15.     style="width: 300px;"> 
    16.      
    17.         
    18.             style="margin-bottom: 5px;"> 
    19.             Strawberry 
    20.          
    21.          
    22.         
      Ice cream
       
    23.      
    24.  

    你还可以将一个 ItemContainer 与一个 Repeater 控件一起使用以从 List 生成项目:只需将 ItemContainer 放入你的 Template 控件中即可。

     
     
     
     
    1.  
    2.     
    3.         data-win-control="WinJS.UI.ItemContainer"  
    4.         data-win-options="{tapBehavior: WinJS.UI.TapBehavior.toggleSelect}" 
    5.         style="width: 300px;"> 
    6.             
    7.                  style=" margin: 10px; padding: 10px; background-color: lightgray"> 
    8.                 
    9.                     style="margin-bottom: 5px;"  
    10.                     data-win-bind="textContent: title"> 
    11.                  
    12.                  
    13.              
    14.      
    15.  
    16.  
    17.     data-win-options="{data: ItemContainerExample.flavorList,  
    18.     template: select('#itemTemplate')}"> 
    19.  

    以下示例定义了数据源。

     
     
     
     
    1. (function () { 
    2.     "use strict"; 
    3.  
    4.     var basicList = new WinJS.Binding.List( 
    5.         [ 
    6.             { title: "Banana blast", desc: 'Frozen yogurt', image: '/images/60Banana.png'  }, 
    7.             { title: "Strawberry swirl", desc: 'Ice cream', image: '/images/60Strawberry.png' }, 
    8.             { title: "Magnificant mint", desc: 'Frozen yogurt', image: '/images/60Mint.png' }, 
    9.             { title: "Lemon lift", desc: 'Frozen yogurt', image: '/images/60Lemon.png' } 
    10.         ]); 
    11.  
    12.     WinJS.Namespace.define("ItemContainerExample", 
    13.         { 
    14.             flavorList: basicList 
    15.  
    16.         }); 
    17. })(); 

    默认情况下可以选择项目。若要禁用选择,请将 ItemContainer 控件的 selectionDisabled 属性设置为 true

    NavBar

    [立即获取 HTML NavBar 控件示例。]

    Windows 8.1 Preview 和适用于 JavaScript 2.0 Preview 的 Windows 库中引入了以下新控件,以帮助你提供一致且可预测的导航体验:WinJS.UI.NavBar 控件。

    NavBar 类似于专用于导航命令的 AppBar。(实际上,NavBarAppBar 的子类。)它可以包含一系列简单的链接,也可以包含分类显示的多个级别的链接。你可以使用以下方法填充 NavBar:硬编码条目、以编程方式更新它,或者使用数据绑定。

    NavBar 会在用户需要时显示在应用屏幕的页首。用户可以通过以下方式调用 NavBar:执行边缘轻扫、按 Windows 徽标键 + Z,或者右键单击。

    NavBar 还支持垂直布局和拆分的导航项(具有子导航选项的导航项)。NavBar 是一个高度可自定义的对象:你可以使用级联样式表 (CSS) 设计 NavBar 及其内容的几乎所有方面的样式,还可以创建自定义导航项。

    创建 NavBar

    NavBar 包括三个组件:

    若要启用导航,你可以设置 NavBarCommand 对象的 location 属性。用户单击命令时,WinJS.Navigation.navigated 事件启动。 使用此事件导航到指定的位置。

    也可以在 NavBar 上注册 oninvoked 事件,并使用你的事件处理程序执行导航操作。

    以下示例显示了一个包含两个导航项的简单 NavBar

     
     
     
     
    1.  
    2.      
    3.             
    4.                 label: 'Home', 
    5.                 icon: WinJS.UI.AppBarIcon.home, 
    6.                 location: '/html/home.html', 
    7.                 splitButton: false 
    8.                 }"> 
    9.              
    10.             
    11.                 label: 'Your apps', 
    12.                 icon: WinJS.UI.AppBarIcon.favorite, 
    13.                 location: '/html/yourapps.html', 
    14.                 splitButton: false 
    15.                 }"> 
    16.              
    17.      
    18.  

    NavBar 如下所示。

    可创建包含子 NavBarCommand 对象的 NavBarCommand。要这样做,请将父 NavBarCommand 对象的 splitButton 属性设置为 true,然后使用 splittoggle 事件显示一个包含子 NavBarCommand 对象的 Flyout。此处是其***个部分的示例代码。

     
     
     
     
    1.  
    2.      
    3.         
    4.             data-win-options="{ label: 'Home', icon: 'url(../images/homeIcon.png)' }"> 
    5.          
    6.         
    7.             data-win-options="{ label: 'Favorite', icon: WinJS.UI.AppBarIcon.favorite, splitButton: 'true' }"> 
    8.          
    9.         
    10.             data-win-options="{ label: 'Your account', icon: WinJS.UI.AppBarIcon.people }"> 
    11.          
    12.      
    13.  
    14.     data-win-options="{ placement: 'bottom' }"> 
    15.      
    16.         
    17.             data-win-options="{ label: 'Family' }"> 
    18.          
    19.          <

      本文标题:控件(使用JavaScript的HTML)
      网址分享:http://www.hantingmc.com/qtweb/news24/245324.html

      网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

      广告

      声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联