首页 > 代码库 > wp使用ApplicationMenu与使用者互动

wp使用ApplicationMenu与使用者互动

功能说明

使用过Lumia系列手机的开发人员,对于内建的相机功能相信都很熟悉。在Lumia内建的相机功能中,提供用户变更相片参数、变更影片参数...等等的设定功能,都是如下图所示意的:点选ApplicationBar的选项之后,在同页面中显示设置选单,来提供使用者设定参数。而这样,点选ApplicationBar的选项之后,在同一个页面显示选单的功能,我自己给它一个名字叫做:「ApplicationMenu」。
  • 功能画面
    <ignore_js_op>vIzeUb.png
使用ApplicationMenu与使用者互动,有着下表所列的种种优缺点,开发人员可以依照系统需求来做评估与选择。而目前.NET Framework并没有提供内建的ApplicationMenu,开发人员必须自己实做。本篇文章介绍如何实做ApplicationMenu,用以在点选ApplicationBar的选项之后,在同一个页面显示选单,为自己留个纪录也希望能帮助到有需要的开发人员。
  • 优点

    • 减少切换页面时,使用者等待新页面的等候时间。
    • 减少切换页面后,使用者对于新页面的学习恐惧。
    • 减少撰写程序时,开发人员对于状态维持、参数传递、状态恢复等等功能的设计。
    • ......
  • 缺点

    • 页面选单过多时,增加使用者的学习负担。
    • 将选单加入页面,意味着页面功能增加,增加了执行时的内存。
    • 将选单加入页面,意味着页面职责增加,增加了维护时的复杂度。
    • ......

功能使用

在开始介绍如何实做ApplicationMenu之前,先介绍如何使用ApplicationMenu,避免开发人员看到大量的实做程序代码就直接昏迷不醒。
本篇文章所实做的ApplicationMenu,最终是将功能封装成为Popup类别的扩充方法:
  • ApplicationMenuExtension
    public static class ApplicationMenuExtension{    // Methods                  public static void ShowApplicationMenu(this Popup popup)    {        // ...    }    public static void HideApplicationMenu(this Popup popup)    {        // ...    }}
开发人员要在页面加入ApplicationMenu的时候,只需要先在页面的XAML内,定义一个做为ApplicationMenu的Popup类别、以及用来开启这个ApplicationMenu的ApplicationBar类别:
  • ApplicationBar
  • ApplicationMenu
接着只需要在页面的事件处理函式中,呼叫ShowApplicationMenu、HideApplicationMenu这两个Popup类别的扩充方法,就可以在页面中显示、隐藏ApplicationMenu:
    • MainPage
      public partial class MainPage : PhoneApplicationPage{    // Handlers    private void BeginSettingButton_Click(object sender, EventArgs e)    {        // Show        this.SettingMenu001.ShowApplicationMenu();    }    private void EndSettingButton_Click(object sender, EventArgs e)    {        // Hide        this.SettingMenu001.HideApplicationMenu();    }}
    • 执行结果
    • 详细说明:http://wp.662p.com/thread-8109-1-1.html

wp使用ApplicationMenu与使用者互动