`
thecloud
  • 浏览: 877449 次
文章分类
社区版块
存档分类
最新评论

[翻译]创建第一个Windows Phone应用程序

 
阅读更多

【译者注:这篇文章是翻译自微软官方的WP7 QuickStart的第一篇,部分内容加入了自己的理解和表达习惯。而翻译此系列的主要目的一是为了练习英语,二是让自己作为一个BI开发者对WP7的开发有一个了解。部分翻译不当的地方望各位高人指出批评指正】

原文地址:

http://create.msdn.com/en-US/education/quickstarts/Get_Started_Creating_a_Windows_Phone_Application

Windows Phone包含很多工具可以让你创建和发布应用程序。此部分主要描述其开发工具,以及如何创建Windows Phone应用程序。

此部分包含如下内容:

安装开发工具

创建项目

填加一个TextBlock

运行程序

在手机上运行程序

填加图形

填加按钮

填加动画

发布到Marketplace

安装开发工具

所有Windows Phone相关的开发和发布的相关必要工具都可以下载。下面的表格可以根据你的情况来选择,然后选择相关的链接来安装这些工具:

针对于c#开发人员:

如果你是c#开发人员,需要安装下面的工具:

1. Windows Phone 开发人员工具

2. Windows Phone 开发人员工具,2011年1月更新版

针对于VB开发人员:

【此部分省略】

创建项目

安装完应用程序开发包后,最简单的方法创建你的第一个应用程序的方法就是通过Visual Studio。【译者注:也就是说,也可以不通过VS2010,比如在记事本里写好代码后然后用命令行的形式编译,当然这种方法很少有人用】

1. 单击开始按钮,执行Microsoft Visual Studio 2010 Express for Windows Phone.【译者注:通常我们直接运行VS2010就可以了,原作者这里考虑到了Express用户】

2. 单击File,选择New Project

clip_image001

这里会打开新建项目对话框。左侧的对话框是不同的项目模版。当选择Silverlight for Windows Phone之后,中间的区域会显示你可以创建的不同的程序类型。

clip_image002

3. 在左侧,选择Silverlight for Windows Phone

4. 在中间选择Windows Phone Application template

5. 命名项目为HelloWorld_Phone然后点击OK【译者注:项目名自己可以随便写】

然后,一个新的Silverlight Phone项目就被创建了,并且会打开设计模式。

clip_image003

通常来说,Visual Studio会把界面分成三部分。(根据你的设置不同,你的界面看上去会有点不同)。左侧是设计视图,中间是XAML视图,右侧是解决方案浏览器。

在解决方案浏览器中,会有若干个项目文件。你在本文中用到的是MainPage.xaml和MainPage.xaml.cs。其中xaml文件是程序的用户界面定义部分。XAML是一个基于XML的声明式语言,UI的创建和布局就是通过它。关于XAML的更详细的信息可以参考MSDN的XAML概览。如果展开这个xaml文件,可以看到一个c#的代码后置文件,名称为:MainPage.xaml.cs。代码后置文件通过Partial class的方式跟其xaml文件组织在一起并且包含xaml文件的逻辑。对于代码后置和Partial class的更多信息可以参考MSDN的这个链接。UI和代码的分离可以让你已声明式标记语言xaml的方式创建用户界面元素,并且用分开的代码后置文件来响应和操作你在xaml里声明的对象。这种分开的方式能让开发人员和设计人员(美工)很容易的在一个项目中协同工作。

填加TextBlock

下面填加一个TextBlock来显示”Hello World”信息。填加它的方式很多,这里使用工具栏和设计视图:

1. 如果MainPage.xaml还没有打开,在解决方案管理器里双击它。

2. 在View菜单中,点击Other Windows,选择Toolbox,这样工具栏就出现了。

3. 调整或者固定工具栏的大小,这样就可以同时看到工具栏和设计视图

clip_image004

4. 在工具栏中,拖拽一个TextBlock到手机界面的主界面中。

在XAML视图中,可以看到TextBlock已经被填加到了Grid下面.

<!--ContentPanel - place additional content here-->

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

<TextBlock Height="30" HorizontalAlignment="Left" Margin="12,6,0,0"

Name="textBlock1" Text="TextBlock" VerticalAlignment="Top" />

</Grid>

5. 打开属性窗体,如果界面上没有,点击View菜单,Other Window,然后选择Properties Window。

clip_image005

6. 在设计视图中,确保TextBlock已经是被选中的。

7. 在属性窗体Properties windows中,设置Text属性为Hello World!

8. 设置字体大小FontSize属性为50

9. 设置高度Height属性为70

此时设计模式应该是这个样子了。

clip_image006

运行你的第一个程序

现在已经创建了你的第一个Windows Phone Silverlight应用程序,然后你就可以运行它了。可是使用内置的Windows Phone模拟器。借助这个模拟器你可以在不部署到真机的情况下,在桌面上快速的测试和调试你的程序。

启动模拟器,你需要为程序打开一个调试会话。Visual Studio就可以运行这个模拟器并且把程序加载到模拟器中。

1. 按F5或者Debug->Start Debugging,打开调试模式。

如果程序有错误的话Visual Studio会在这里告诉你。几分钟后,像下面图片里的浏览器界面就出现了。

clip_image007

第一次打开模拟器总是需要比较长的时间。为了让后面的调试速度更快些,尽量不要关闭模拟器窗体,只要在Visual Studio里选择Debug->Stop Debugging就可以了。这样模拟器还会运行在那里,所以后续的调试就会更快一些。

2. 点击Debug->Stop Debugging终止调试。

在Windows Phone中运行程序

在Windows Phone中运行程序,需要用Windows Phone Developer Registration tool(WP开发人员注册工具)来给手机解锁。这个工具在开始菜单下的Windows Phone Developer Tools下。另外,还需要为App Hub付费。

1. 如果没有App Hub帐号,就在这里注册一下。

2. 打开Zune

3. 连接手机到电脑

4. 执行Windows Phone Developer Registration tool,输入Windows Live ID信息以跟App Hub帐号关联

clip_image008

5. 在注册向导里,输入电话的标识信息

然后你的电话就被解锁并且可以接收Visual Studio部署的程序

6. 在Visual Studio中,通过在deployment target(部署目标) 中选择程序是备份到模拟器还是手机中

7. clip_image009

8. 选择Windows Phone Device,就可以把程序部署到已经解锁的设备中。

注意:

Zune必须一直在运行,并且手机的是连接到电脑,屏幕是处于解锁状态,这样部署才会成功。

填加图形

在Silverligh中,可以用Shape类来填加各种图形。比如最常见的Rectangles,和稍微复杂点的Polygon。Brushes在Silverlight中用来给它们着色。关于Graphics和Brushes的更多信息可以参考Graphics QuickStartBrushes QuickStart

下面就给TextBlock外面套一层StackPanel。Panel是一个用来组织UI的容器,每个应用程序最少都应该有一个。StackPanel会依次组织其内部的元素,通过Orientation这个属性来决定是横向还是纵向的显示它们。Grid和Canves元素允许内部的元素自己定义其位置。

这里用到的是Ellipse。它会在StackPanel中显示在TextBlock后面。然后再依次指定它的Width,Height和Fill属性。对于Fill属性,必须对其指定Brush。

这里用XAML视图来完成。

1. 选择工具栏窗体

2. 在XAML视图中,定位到刚才填加的TextBlock的部分

3. 用下面的XAML代码替换TextBlock部分。

XAML

<StackPanel>

<TextBlock FontSize="50" Text="Hello, World!" />

<Ellipse Fill="Blue" Height="150" Width="300"

Name="FirstEllipse" />

</StackPanel>

clip_image010

4. 按F5运行程序

然后会看到如下图的效果,目前还没有定义用户操作,所以看上去还较单一,当然也可以自己尝试填加更多的控件。

clip_image011

5. 选择Debug->Stop Debugging终止调试。

填加一个按钮

下一步就是要填加一个按钮。控件是用户和Silverlight程序交互的一种方式。目前Silverlight已经包含了很多的控件比如Button,TextBox和ListBox等。

填加按钮通常有两个步骤,先在XAML中填加一个Button元素,然后再为用户相应事件定义逻辑代码,比如按钮的单击事件。

1. 在XAML中,在<Ellipse/>后加入如下代码。

XAML

<Button Height="150"

Width="300"

Name="FirstButton" Content="Tap" />

Name属性给的值是FirstButton,这样就可以通过后台代码来访问到这个Button实例。Content属性指定在按钮上出现的文本。然后又定义了其高度和宽度的属性。

Silverlight是一个事件驱动的应用程序模型。当类似按钮单击或者应用程序加载发生时,事件就被触发了。可以通过填加event handler代码,当发生一个事件然后需要做某种处理的时候。这里会为按钮填加一个click事件的处理代码。

在Visual Studio中可以按照下面的方法填加事件处理代码。

2. 在设计视图中,选择按钮

3. 在属性面板中,点击事件标签,按钮所支持的时间会被显示出来。

clip_image012

4. 双击Click事件

这是后置代码文件出现,可以看到FirstButton_Click处理代码已经被自动填加。

5. 填加如下代码到按钮单击事件中。

C#

private void FirstButton_Click(object sender, RoutedEventArgs e)

{

if (FirstButton.Content as string == "Tap")

{

FirstButton.Content = "Tap Again";

}

else

{

FirstButton.Content = "Tap";

}

}

这部分代码定义的操作是,当按钮被单击的时候,按钮上的文本会在“Tap”和“Tap Again”中来回切换。

clip_image013

6. 按F5运行程序。

下面是一个实时演示,可以点击一下按钮看看运行效果。

在XAML视图中,可以看到Click属性已经被填加到了Button中。

XAML

<StackPanel>

<TextBlock FontSize="50" Text="Hello, World!" />

<Ellipse Fill="Blue" Height="150" Width="300"

Name="FirstEllipse" />

<Button Height="150"

Width="300"

Content="Tap"

Name="FirstButton"

Click="FirstButton_Click" />

</StackPanel>

填加动画

最后一件事就是填加动画。这里为Ellipse填加一个非常简单的动画。这里只是简单的介绍一下动画,你可以先不用去理解其中的细节,当然关于动画的更多参考,可以单击这里

创建动画的三个步骤:创建一个StoryBoard,创建动画,然后在代码中启动动画。

StoryBoard是一个组织动画的容器,在StoryBoard中,动画可以被启动或者终止。

在Silverlight中动画通过在一段时间更改某属性值的方法实现。StoryBoard.TargetName属性定义被应用到哪个元素上。StoryBoard.TargetProperty定义哪个属性被定义了动画效果。To属性定义动画完成时这个属性的值【译者注:也就是从属性的一个值变成to所设定的值从而实现动画小姑,比如在1秒内宽度从200到400】,AutoReverse指定动画效果是否重复显示。Duration属性指定动画完成的时间。比如,1秒的动画是这样定义的---“00:00:01”,0小时0分钟1秒。

1. 在解决方案管理器中,双击MainPage.xaml

2. 在XAML视图中,用下面的代码替换StackPanel部分。

XAM中创建了一个StackPanel.Resource节来包含StoryBoard元素。这个StoryBoard名字叫FirstStoryBoard,这样就可以在代码里访问到它。动画改变Ellipse的Width属性,它是一个Double类型,所以使用的是DoubleAnimation。StoryBoard的TargetName属性设置成了FirstEllipse对象。TargetProperty设置成了Ellipse的Width属性。To设置成了1,这样动画运行的时候宽度属性就会从200变成1。AutoReverse属性设置成了True,这样动画就会被重复播放。Duration设置成了1秒。

clip_image014

然后,在代码中通过调用StoryBoard的Begin方法来启动动画。

3. 在MainPage.xaml.cs中,在按钮单击事件中调用FirstStoryBoard的Begin方法。

C#

private void FirstButton_Click(object sender, RoutedEventArgs e)

{

if (FirstButton.Content as string == "Tap")

{

FirstButton.Content = "Tap Again"

}

else

{

FirstButton.Content = "Tap";

}

FirstStoryBoard.Begin();

}

4. 按F5运行程序。

下面是程序的一个实时演示。

发布到MarketPlace

完成程序之后,你或许会考虑把程序发布出来供别人免费下载或者出售。可以通过MarketPlace来实现。关于如何发布,请参考这里

---------------------------------------------------------------

aspnetxBI笔记系列索引:

在Silverlight下用Visifire显示多维数据集中的数据

在Silverlight下用Visifire显示多维数据集中的数据(二)

BI笔记之---增量方式处理多维数据集

BI笔记之---BI通用流程

BI笔记之---SSAS部署的几种方式

BI笔记之---SSAS库Process的几种方案

BI笔记之--- Cube增量处理的一个场景的处理方案

BI笔记之---SSAS中关于某一度量需要先后根据不通维度的不同聚合方法的解决

---------------------------------------------------------------

来自博客园aspnetx宋卫东


分享到:
评论

相关推荐

    WindowsPhone-UniversalWindowsApp:创建您的第一个通用 Windows 应用程序

    Tuts+ 教程:创建您的第一个通用 Windows 应用程序 指导老师:Vivek Maskara 通用 Windows 应用程序使您能够在一个解决方案中针对每个 Windows 设备。 您开发一次,共享大部分代码,然后在 Windows、Windows Phone ...

    Windows Phone 4. 使用消息推送机制

    微软Windows® Phone推送通知服务(PushNotificationService)为第三方开发者提供了一个弹性、专注、可持续的通道,支持发送消息、从服务器(web services)端更新Windows® Phone应用程序。 在这一部分中,一个移动应用...

    rate-my-app:评价我的应用程序是一个 Windows Phone 组件,要求用户查看应用程序和_或对应用程序提供反馈

    评价我的应用Rate My App 组件用于创建以设定的时间间隔出现的提示,并允许用户提供反馈并对 Windows Phone 商店中的应用程序进行评分。 默认情况下,当第 5 次启动带有 Rate My App 组件的应用程序时,会向用户显示...

    Android移动应用开发(第3版)卷Ⅰ基础篇 (Shane Conder, Lauren Darcey) PDF扫描版

    第3章 编写第一个Android应用程序  第4章 掌握Android开发工具  第二部分 Android应用程序设计基础 第5章 剖析Android应用程序  第6章 使用Android Manifest文件定义应用程序  第7章 管理应用程序资源  ...

    Android程序设计基础

    1.2 创建第一个程序 7 1.3 在模拟器上运行程序 8 1.4 在手机上运行程序 9 1.5 快速阅读指南 9 第2章 基本概念 11 2.1 Android的系统架构 11 2.1.1 Linux内核 11 2.1.2 本机库 12 2.1.3 Android运行时 13 ...

    Apex第1部分:创建您的第一个MVVM应用程序

    使用Apex SDK在十分钟内编写您的第一个MVVM应用程序!

    Chef-System:Chef System是一款用于管理由IONIC 2+开发的餐厅的应用程序

    该应用程序尚未完成,但包含3个不同的应用程序,第一个是针对虚假服务生开发的Admin Interface,例如,他们可以打开表格创建帐单,然后客户使用生成的访问代码登录到Mobile Application和订购产品。 服务器将在2个...

    Google Android SDK开发范例大全(完整版)

    接下来,创建一个简单的应用程序,该应用程序有一个活动,并且在 main.xml 中有一个 UI 布局。布局包含一个文本元素,您将修改这个文本元素,以显示 Android FlashLight。下面的清单显示了这个简单的布局。 清单 1...

    最新Delphi XE2 正式版破解程序

    对Delphi XE2和C++Builder XE2来说,一个极其重要的新特性就是FireMonkey,业界第一款用于创建商业软件的原生的能全面利用到CPU和GPU计算能力的富应用平台。使用 FireMonkey,Delphi和C++Builder开发人员能开发出...

    Xamrin Android开发实战 源代码

    1.3.3 Windows Phone应用程序 4 1.4 下载安装Xcode 4 1.4.1 申请苹果账号 4 1.4.2 Xcode的下载安装 8 1.5 下载安装Xamarin.iOS 10 1.5.1 下载OS X版的Xamarin安装包 10 1.5.2 下载安装Xamarin.iOS 11 1.6 下载...

    iExplorer 4.5.0 MacOSX.zip

    iExplorer 是一款可以运行在 Mac 和 Windows 平台上的免费软件,通过这款软件可以非常轻松的访问到 iPhone/iPad 上的应用程序目录、照片目录,比如你 iPhone 照片库中的照片都可以直接在 iExplorer 的界面中访问到,...

    SampleiOS_MQA_app:源代码,例如使用移动质量保证服务的移动应用-Mobile app source code

    IBM Mobile Quality Assurance(MQA)iOS HelloWorld... 告诉MQA应用程序的名称以及运行该应用程序的平台(iOS,Android或Windows Phone)。 3.复制应用程序密钥 在MQA中添加新应用程序后,将获得一个唯一的应用程序

    中美 IT 培训 C# Asp.net 全套笔记1

    Windows 应用程序、设计模式和Oracle数据库编程(40课时) 系统地讲授Windows应用程序的开发,学习观察者模式和Oracle数据库编程。 熟练开发基于数据库的Windows应用程序,掌握Oracle数据库编程。 C# 高级编程II ...

    中美 IT 培训 C# Asp.net 笔记2

    Windows 应用程序、设计模式和Oracle数据库编程(40课时) 系统地讲授Windows应用程序的开发,学习观察者模式和Oracle数据库编程。 熟练开发基于数据库的Windows应用程序,掌握Oracle数据库编程。 C# 高级编程II ...

    telsis_translator_flutter:Flutter UI的Telsis语言翻译器

    (注意:此应用程序是我第一次尝试用Dart和Flutter编写东西。可能有更好的方法来编写一些代码,例如处理Map迭代的代码。该应用程序已在Linux机器,Windows 10机器上进行了测试。 ,以及Android手机。我没有iPhone或...

    中美 IT 培训 C# Asp.net 笔记3

    Windows 应用程序、设计模式和Oracle数据库编程(40课时) 系统地讲授Windows应用程序的开发,学习观察者模式和Oracle数据库编程。 熟练开发基于数据库的Windows应用程序,掌握Oracle数据库编程。 C# 高级编程II ...

    跨平台移动端开发NativeScript.zip

    NativeScript 可以使用 Javascript,CSS, XML 创建真正的 Native 跨平台应用,支持 iOS Android,NativeScript 将您的跨平台代码翻译成目标平台的代码。UI 使用 XML 描述,CSS 样式,在编译时将 UI 转化成本地原生...

    最新RAD Studio XE2 Update 4 hotfix 1安装器(含破解)

    对Delphi XE2和C++Builder XE2来说,一个极其重要的新特性就是FireMonkey,业界第一款用于创建商业软件的原生的能全面利用到CPU 和GPU计算能力的富应用平台。使用 FireMonkey,Delphi和C++Builder开发人员能开发出...

Global site tag (gtag.js) - Google Analytics