65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 C# 为 Windows 10 IoT 构建你的第一个应用程序

starIconstarIconstarIconstarIconstarIcon

5.00/5 (4投票s)

2016 年 2 月 11 日

CPOL

6分钟阅读

viewsIcon

49245

downloadIcon

604

快速指南,用于开发 Windows 10 IoT Core 的第一个应用程序

引言

在本技巧中,我们将指导你完成在 Windows 10 IoT Core 上创建、运行和调试一个简单应用程序的过程。

背景

这篇文章是我编写的关于开发 Windows 10 IoT Core 应用程序系列文章之一。要查看我所有的文章,请访问我的介绍文章

在你开始之前,你应该在 Windows 10 操作系统上(甚至可以在虚拟机上),并且应该已安装 Visual Studio 2015。(你可以从此处免费下载社区版)。

入门

首先,打开 Visual Studio,然后创建一个新项目(文件 -> 新建 -> 项目)。然后选择“空白应用 (通用 Windows)”。

我选择了名称“MyFirstApp”。点击“确定”后,Visual Studio 将为你创建一个新项目。

在这里,你可以看到你的新项目包含哪些内容。那么,让我们从头开始。

  • App.xaml - 这是应用程序的主入口点。即使它是一个 XAML 文件,它也没有设计器。
  • App.xaml.cs - 这是 App.xaml 的代码部分,这个文件更有趣,它包含应用程序启动时执行的代码。
  • ApplicationInsights.config - ApplicationInsights 的配置,这是 Microsoft 的一种应用程序遥测。
  • MainPage.xaml - 这是主 XAML 文件,当你运行应用程序时会看到它(如果双击它,将打开可视化设计器)。
  • MainPage.xaml.cs - 这是 MainPage.xaml 的代码文件。在这里,你将编写所有与主屏幕关联的代码。
  • MyFirstApp_TemporaryKey.pfx - 这是用于签名你的应用程序包的密钥文件(通用应用程序包必须签名),通常你不需要对其进行任何修改。
  • Package.appxmanifest - 在这里,你可以定义应用程序的基本属性。
  • project.json - 此文件中描述了基本应用程序属性,通常你不需要修改它。

你应该明白,通用 Windows 应用与桌面应用程序不像,它更像 Windows 手机应用程序(无论它是在树莓派上运行还是在你本地机器上运行)。它对运行的系统仍然有非常有限的访问权限。因为它在沙箱中运行。

浏览完项目后,你只需点击运行,首先在本地计算机上运行,看看一切是否正常并且可以编译。(过一会儿,程序应该会在新窗口中打开,然后你可以关闭它)。

要在你的树莓派上运行应用程序,你需要进行一些设置。

首先,在 Visual Studio 中打开运行选项(如图所示)。

选择远程计算机,你将看到“远程连接”窗口。

通常,你的设备会自动检测到,你只需点击它的名称(在我的例子中是 miniwinpc),然后点击“选择”。如果你的设备没有自动检测到,你可以使用 IoT Dashboard 找到它的 IP 地址,并在“手动”部分输入它,重要的是“身份验证模式”,它必须设置为“通用(未加密协议)”。

请注意,树莓派处理器的架构是 ARM,所以也要在设置中更改它。成功设置好一切后,你的运行栏应该如下所示。

现在,你可以点击绿色的箭头运行你的应用程序。在输出窗口中,你将看到应用程序的部署过程。

首次生成需要相当长的时间,但你需要有耐心。部署完成后,你的应用程序应该会显示在连接到树莓派的屏幕上。当然,目前它没什么特别之处,但总算是有所作为。(你应该会看到一个空白的白色屏幕,角落有一些数字 - 性能计数器)。

添加修改

现在你已经构建并测试了你的第一个 Windows 10 IoT Core 项目,是时候稍微修改一下应用程序,以便你能够实际操作了。

首先,通过双击打开 MainPage.xaml 设计器文件。然后设置设计器属性,使其更适合你的设备。我使用的是普通的 FullHD 电视,所以我设置为这样

我们将设置一张图片作为背景,然后添加一个按钮和一个文本字段。

要将图片设置为背景,我将首先向我的项目中添加一张图片。我选择 Assets 文件夹,然后将现有对象添加进去。

然后在文件浏览器中,我将选择一个 .jpg 图片导入到项目中。导入完成后,我应该能在 Assets 文件夹中看到这个文件。

当文件准备好后,我可以将其设置为应用程序的背景。首先,通过双击打开 MainPage.xaml 设计器,然后选择主元素并打开属性。转到“画笔”类别,选择“图像”,然后打开“图像源”下拉菜单,并选择你的新文件。

如果你在设计器中一切操作正确,你的背景就会改变。下一步是添加一个按钮。你只需打开工具箱(通常在左侧),然后将按钮对象拖放到你的应用程序设计器中。我在属性窗口中修改了按钮,更改了背景颜色和文本。(要更改按钮上的文本,你必须修改“内容”字段)。你的设计器现在应该看起来像这样

好的,现在我们有了一个漂亮的背景和一个显示“Click me!”的按钮。下一步,我们将创建一个可以查看按钮执行结果的地方。点击按钮后,设备将在屏幕中央显示其 IP 地址。所以,我们需要在屏幕中央添加一个标签。在 WPF 中,你可以使用 TextBox 作为标签,所以只需在工具箱中找到该组件,然后将其拖放到你的主屏幕上。在属性中,将文本大小和字体设置为更大的尺寸,我使用了 80pt。

有了这个初始设计,我们就可以让它工作了。首先,我们将为按钮添加一个动作。

这非常简单,你只需双击按钮,就会创建一个动作,然后你将被重定向到代码,在那里你可以编写经典的 C# 代码。

Private void Button_Click(object sender, RoutedEventArgs e)
{

}

现在,我们将回到设计器,为 textBlock 设置名称,以便我们可以从代码中使用它。所以,选择你的 textBlock 并将其名称设置为“textBlock1”。

现在,我们可以回到代码中获取系统 IP 地址,然后将其显示在 textBlock 中,要做到这一点,使用此代码

Private void Button_Click(object sender, RoutedEventArgs e)
{
List<string> IPaddr = new List<string>();
var HostNames = Windows.Networking.Connectivity.NetworkInformation.GetHostNames().ToList();
foreach (var Host in HostNames)
  {
   string IP = Host.DisplayName;
   IPaddr.Add(IP);
  }
textBlock1.Text = IPaddr.Last();
}

完成后,你就可以在设备上运行它了。如果你没有看到与设计器中相同的背景和按钮,你可能没有在设备上设置正确的显示分辨率,要设置它,请修改 SD 卡上的 config.txt 文件并添加这些值

hdmi_drive=2
hdmi_mode=82

我使用这些值来获得电视的全高清分辨率。你可以尝试其他设置,也许你会得到更好的结果。

然后你需要将电视的宽高比设置为“仅扫描”,你应该就能看到整个画面。

当你的程序在设备上成功运行时,点击按钮后,你应该能在设备下方看到 IP 地址。

请随时下载项目源代码并在你自己的设备上进行尝试。此外,如果你能发表任何评论或提问,我将非常高兴。

© . All rights reserved.