通过VS2015查看GitHub上的微软官方例子学习UWP

Win10发布有一段时间了,随之而来的就是UWP。
目前市面上有关Win10开发的教程较少,假设你已经能够熟练使用C#进行.NET平台的开发,比如:WPF、WP8.1开发等,那通过微软在GitHub上发布的开源的例子来认识并学习UWP开发,也是一条可选的道路,这样你可以认识到微软在UWP上一些API的改变和使用方法。

一、 准备

这里先介绍如何安装GitHub插件,如果你已经安装,请跳过这一个内容。

VS2015上集成了GitHub插件,可以非常方便的把GitHub上的代码克隆到本机进行查看、修改、编译、运行。当然这需要在安装VS2015的时候把插件给勾选上,如果你已经安装了VS2015却没有把插件勾选上,或者你已经忘记了是否安装插件你可以通过以下步骤来查看和安装插件:
本人用的VS版本为:VS2015社区版 Update1
1、右键开始菜单,点击程序和功能。

2、在程序和功能中找到你安装的VS,右键它,点击更改,稍等片刻会出现
通过VS2015查看GitHub上的微软官方例子学习UWP_第1张图片
点击左下角的修改按钮。

3、选择把通用文件的所有内容勾选上,然后点击右下角的下一步(如果已经安装了就可以直接退出了),如果你还没有安装VS2015,在安装时记得把这一项勾选上就好了。
通过VS2015查看GitHub上的微软官方例子学习UWP_第2张图片

4、等待安装完成后,按照软件提示重启电脑,打开VS2015准备下一步咯~

二、登陆GitHub克隆代码到本地计算机

本部分将介绍如何在VS2015中登陆到GitHub和克隆GitHub上的代码到本地计算机进行查看。

1、找到团队资源管理器:如果你找不到,点击视图再点击里面的团队资源管理器项。
通过VS2015查看GitHub上的微软官方例子学习UWP_第3张图片
如图所示,你可以看到在团队资源管理器中有一项GitHub,这说明你的插件已经安装成功了。

2、登陆。输入你的GitHub账号和密码并进行登陆。登陆成功后团队资源管理器就变成了下面这个样子:

3、克隆代码。点击本地Git存储库中的克隆
通过VS2015查看GitHub上的微软官方例子学习UWP_第4张图片

通过VS2015查看GitHub上的微软官方例子学习UWP_第5张图片

这里插件提示我们输入要克隆的Git存储库的URL,并且在下方选择存放克隆的代码的文件夹。
GitHub 微软官方例子
点击上面的链接进入GitHub,如下图,点击红圈中的按钮或者手动复制URL。
通过VS2015查看GitHub上的微软官方例子学习UWP_第6张图片
把复制到的URL粘贴到输入框中,选择好存放位置,点击克隆。
通过VS2015查看GitHub上的微软官方例子学习UWP_第7张图片
等待接收完毕,整个过程要保持网络畅通。
温馨提示:所有代码和资源一共是700M以上,所以在克隆代码的这段时间可以去锻炼锻炼。
通过VS2015查看GitHub上的微软官方例子学习UWP_第8张图片
克隆完成后,在你的本地Git存储库中就会有一个叫UWP Eazy Sample的项了。这表示你已经可以在本地计算机查看这些项目代码了。

三、查看项目代码并在本地计算机编译运行

本内容将初略介绍微软官方例子的内容,并演示运行效果。

双击本地Git存储库中克隆好的代码,你可以在解决方案这一项的下面看到很多的VS解决方案

你可以点击其中你感兴趣或者想了解的例子,就可以在VS中打开相应的解决方案,下面就拿BackButton这个项目中的例子进行大概的讲解。

很多人都知道在WP上如果不进行设置点击手机硬件上的后退按钮,程序是会返回上一个软件或者回到开始菜单。我们的软件从一个页面跳转到另一个页面之后,如果我们想通过点击返回键就需要对返回键进行处理,在UWP上也是如此。如今UWP可以用同一套代码在手机和电脑上运行,手机上有物理返回键,但电脑上是没有相应的物理返回键的,那这时候在电脑上应该怎么办呢?这个微软给的例子就很好的告诉了我们。首先我们来看一看微软对这个项目的说明(一般说明都会在一个叫readme的文件中),我们打开解决方案文件夹中的README文件或者在GitHub上都可以查看这个文件。这个文件的说明如下:

Back Button Sample

This sample demonstrates how to set up an event handler for the back button event and how to enable the title bar back button for when the app is in windowed Desktop mode.

Specifically, this sample covers:

  • Setting up an event handler for BackRequested and to navigate back in the page stack.
  • Enabling and disabling the title bar back button based on the app’s internal page stack.

To obtain an insider copy of Windows 10, go to Windows 10.

Note For Windows 10 app samples, go to Windows 10 Samples. The samples for Windows 10 can be built and run using Windows developer tools.

  • Windows app samples

System requirements

Client: Windows 10

Server: Windows Server 2016 Technical Preview

Phone: Windows 10

Build the sample

  1. If you download the samples ZIP, be sure to unzip the entire archive, not just the folder with the sample you want to build.
  2. Start Microsoft Visual Studio 2015 and select File > Open > Project/Solution.
  3. Starting in the folder where you unzipped the samples, go to the Samples subfolder, then the subfolder for this specific sample, then the subfolder for your preferred language (C++, C#, or JavaScript). Double-click the Visual Studio 2015 Solution (.sln) file.
  4. Press Ctrl+Shift+B, or select Build > Build Solution.

Run the sample

The next steps depend on whether you just want to deploy the sample or you want to both deploy and run it.

Deploying the sample

  • Select Build > Deploy Solution.

Deploying and running the sample

  • To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or select Debug > Start Without Debugging.

说明文件已经很清楚的告诉我们例子要展现的内容、运行要求以及如何在我们的电脑上运行示例。从中我们可以知道,在电脑端没有实体返回键的情况下,可以在title bar上放置返回键进行返回。我们先运行程序看看效果。

在win10手机上的效果:

经过试验在手机端勾不勾选 Enable Title Bar back button 效果都是一样的,点击“Navigate to secondary page”按钮。第二个页面如下:

这个例子非常友好的告诉我们使用方法。经过本人试验,在手机端按下后退键确实实现了返回上一页的功能。

在win10电脑上的效果:
通过VS2015查看GitHub上的微软官方例子学习UWP_第9张图片
勾选显示后退按钮点击跳转按钮以后,跳转到的页面左上角就会有一个返回的小按钮。点击他就可以返回上一页了。
通过VS2015查看GitHub上的微软官方例子学习UWP_第10张图片

接下来我们就看看他到底是怎么实现的。
首先,通过README文件我们知道了这个例子的主要内容:

Specifically, this sample covers:

  • Setting up an event handler for BackRequested and to navigate back in the page stack.
  • Enabling and disabling the title bar back button based on the app’s internal page stack.

以为BackRequested注册事件这个为例,我们可以利用VS的搜索功能查找BackRequested,找到相应的代码:

//Register a global back event handler. This can be registered on a per-page-bases if you only have a subset of your pages
//that needs to handle back or if you want to do page-specific logic before deciding to navigate back on those pages.
SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested;

/// <summary>
/// Invoked when a user issues a global back on the device.
/// If the app has no in-app back stack left for the current view/frame the user may be navigated away
/// back to the previous app in the system's app back stack or to the start screen.
/// In windowed mode on desktop there is no system app back stack and the user will stay in the app even when the in-app back stack is depleted.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void App_BackRequested(object sender, BackRequestedEventArgs e)
{
    Frame rootFrame = Window.Current.Content as Frame;
    if (rootFrame == null)
        return;

    // If we can go back and the event has not already been handled, do so.
    if (rootFrame.CanGoBack && e.Handled == false)
    {
        e.Handled = true;
        rootFrame.GoBack();
    }
}

这就是官方给出的处理后退键返回上一页的方法,代码清晰,而且还有完整的注释!不得不说,官方在这一方面很下功夫了。

至此,你已经可以按照以上的方法来查看和学习所有的微软发布在GitHub上的示例了。
目前UWP刚刚开始,在市面上和网上有关UWP开发的教程也比较少,查看微软在GitHub上的示例和帮助文档可以解决我们日常碰到的很多疑问,当你遇到某个功能不知道如何实现或者曾经你在WP上使用的方案在UWP无法使用的话(有可能API改名了,有可能没有了)不妨查看示例,也许里面就有你想要的解决方案。

最后给大家推荐几个学习UWP的网站

微软虚拟学院:
微软虚拟学院上有很多教学视频,非常适合新手,当然除了UWP还有其他的,如果你感兴趣可以都学习,大部分视频是微软的官方人员或者资深的.NET开发者主讲。

第九频道:
官方网站,上面基本上是微软的一些动向,还有一些新技术的教学。

MSDN论坛,微软官方论坛:
如果示例无法解决你的疑问或者你懒得看示例的话,可以直接上这个论坛查找或者提问。

Microsoft in GitHub:
微软在全球最大的程(同)序(性)员交友网站上分享的开源项目全在这里了!当你看到“Open source, from Microsoft with love”, 你就知道微软是有多爱我们了T.T
通过VS2015查看GitHub上的微软官方例子学习UWP_第11张图片

微软开发者中心:
可以在这里查看帮助文档、下载示例,这也有一些简单的教学视频。

Win10.Me,Win10 UWP开发者学习资料分享社区:
网站上面有很多关于Win10开发的文章, 而且还有一个入门的教学系列视频。

目前能想到的就这么多了。

本人目前资历尚浅,如文章中有什么错误请直接在评论栏中提出。本人会改正的~

你可能感兴趣的:(github,微软,VS2015,UWP)