Windows 8 动手实验教程 实验6:设置和首选项2014-09-04动手实验实验6:设置和首选项2012年9月简介实验3介绍了合约并演示了应用程序如何轻松地与共享和搜索合约实现集成。合约同样包含设置超级按钮,它对活动的Windows应用商店应用的设置进行修改。在您选择设置超级按钮时出现的设置窗格中,操作系统提供一个权限命令,它允许用户启用或禁用程序的某些功能,例如对网络摄像头和麦克风的访问。值得注意的是您可以向设置窗格添加命令并将它们连接到设置页面。这为用户提供了方便地访问首选项,关于框和其他应用程序特定的设置内容。在本实验中,您将向Contoso Cookbook的设置窗格添加About 和 Preferences命令。您将公开一个简单的用户首选项,它可以通过一个切换开关被打开和关闭,并且您将使用漫游设置存储这个首选项以使它跟随用户一起移动。目标本实验将向您展示如何:向设置窗格添加About命令和关于页面。向设置窗格添加Preferences(首选项)命令和首选项页面。使用漫游设置存储用户首选项。系统要求您需要下列软件完成本实验:Microsoft Windows 8Microsoft Visual Studio 2012设置您必须执行以下步骤来准备本实验的计算机:1.安装Microsoft Windows 8。2.安装Microsoft Visual Studio 2012。练习本动手实验包含以下练习:1.添加关于页面2.添加首选项页面3.实现首选项完成本实验的预计时间:30至40分钟。练习1: 添加关于页面在本练习中您将向Contoso Cookbook添加一个简单的关于页面。您将使用在实验4中添加的Callisto库中的SettingsFlyout类来处理关于页面。任务1 – 添加关于命令第一步是向设置菜单添加一个About命令,我们将通过处理SettingsPane.CommandsRequested事件来完成。1、在Visual Studio中打开您在实验4中完成的ContosoCookbook项目。如果您尚未完成实验4或希望从一个参考副本开始,您可以在开始材料中找到实验已完成的版本。2、打开App.xaml.cs并添加以下using语句。C#using Windows.UI.ApplicationSettings;using Callisto.Controls;using Windows.UI;3、向App类添加以下字段。C#private Color _background = Color.FromArgb(255, 0, 77, 96);4、在OnLaunched方法中,紧挨着为SuggestionsRequested事件注册事件处理程序的语句之后,添加以下语句。C#// 在设置窗格为CommandsRequested 事件注册事件处理程序SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested;5、向OnSearchActivated方法添加相同的语句(再次紧挨着为SuggestionsRequested事件注册事件处理程序的语句之后),以保证即使应用程序从Windows 8搜索窗格被激活,CommandsRequested事件也会被处理。6、向App.xaml.cs添加以下事件处理程序。C#
void OnCommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args){// 添加关于命令var about = new SettingsCommand("about", "About", (handler) =>{var settings = new SettingsFlyout();settings.Content = new AboutUserControl();settings.HeaderBrush = new SolidColorBrush(_background);settings.Background = new SolidColorBrush(_background);settings.HeaderText = "About";settings.IsOpen = true;}); args.Request.ApplicationCommands.Add(about);}
注意:这里您通过向传递给CommandsRequested事件的ApplicationCommands集合添加一个SettingsCommand对象以向设置菜单添加命令。SettingsCommand构造函数的第三个参数是命令被调用时被调用的处理程序。在本示例中,您使用Callisto中的SettingsFlyout类从处理程序显示关于页面。当然关于页面还没有被创建。您将在下一个任务中创建它。