< body>
一周时间初步学习Windows Phone,假设您已有Silverlight、C#语言等相关基础,在7天中天天最后有一个带源码的案例学习,最后一天是一个综合性的大型案例。
1、 开发环境搭建
Windows Phone Developer Tools RTW
下载地址:
单击下载连接,vm_web.exe,下载后运行,在线安装,运行(离线安装也可,需下载ISO文件),将自动安装如下相关软件:
The Windows Phone Developer Tools includes the following
1)
Visual Studio 2010 Express for Windows Phone
2)
Windows Phone Emulator Resources
3)
Silverlight 4 Tools For Visual Studio
4)
XNA Game Studio 4.0
5)
Microsoft Expression Blend for Windows Phone
Windows Phone Developer Tools January 2011 Update
:(模拟器等更新)
2、
项目模板及文件介绍
Windows Phone
包含如下类型的项目:
1)
Windows Phone Application:
单页面应用程序
2)
Windows Phone Databound Application
,多页面应用程序
3)
Windows Phone Class Library,
类库
4) Windows Phone Panorama Applicaion
,使用全景控件的应用程序
5)Windows Phone Prvot Application
,使用中轴控件应用程序。
以Windows Phone Application项目模板为例,了解一下程序结构,查看解决方案资源管理器,如图1-1。
图1-1
包含的主要文件有:
App.xaml
:这个文件和ASP.NET中的web.config文件很类似。定义应用程序级的资源、数据和设置等,其中含标记:
<
Application.Resources
>
………………….
</
Application.Resources
>
在其代码文件App.xaml.cs中还包含了
Application_Launching
、Application_Activated、Application_Deactivated、Application_Closing
等事件处理。
AppManifest.xml
:生成应用程序安装包(XAP)所需的一个简单的应用程序清单文件。
WMAppManifest.xml :
包含了应用程序特定数据的元数据文件,包括标题,图标位置,功能等等
AssemblyInfo.cs :
包含了名称和版本的元数据,会被嵌入到生成的程序集文件中。
Background.png :
当程序被显示到开始界面中就会显示这个图像。MainPage.xaml :程序首页面。
SplashScreenImage.jpg :
应用程序载入时显示的图片。
ApplicationIcon.png
:程序特定的图标,用户会在他们的程序中将看到此图标。
< body>
案例1-1:完成一个经典的“Hello”应用程序
完成一个经典的“Hello”应用程序 ,建立一个针对Windows Phone的Silverlight的应用程序,学习如何使用相应开发工具来建立和设计Windows phone应用程序,并在Windows Phone Emulator上去部署。
(1)
启动Visual Studio 2010,在项目对话框中,选择模板“Silverlight for Windows Phone”,建立“Windows Phone Application”
(2)
在资源管理器中,可看到解决方案MyHello中项目,及文件结构。如图1-2。
图1-2
MainPage.xaml
为程序的起始页面,默认界面xaml代码以下:
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"></Grid>
</Grid>
页面分红了二个部分,Grid容器中含有StackPanel、Grid控件,其中StackPanel中为程序标题信息。自动生成两个TextBlock,一个显示”MY APPLICATION”,这是应用程序的名称;另外一个显示page name“,这是当前页的标题。可修改这些显示,使之反映本身的实际程序,先将当前页的标题名称”page name”改成”Hello”,暂时不做任何改动。
(3)
选择模拟器输出方式:Windows Phone 7 Emulator
(4)
按”F6”编译程序,将建立模拟器,并在模拟器窗口中显示程序的启动页面,应该是没有任何错误。
(5)
按
”F5”
运行程序,将建立模拟器显示应用程序,第一次启动,时间要长些。效果如图1-3:
图1-3
(6)
按”SHIFT+F5”结束运行,模拟器最好不要关闭,那么部署新应用程序来进行测试时,模拟器会更快地响应。
(7)
设计用户界面,打开工具箱直接拖动控件便可。添加一个textblock、一个textbox、 及一个button控件,xaml标记以下,已直接添加注解:
<
Grid
x
:
Name
="LayoutRoot"
Background
="Transparent"
ShowGridLines
="True">
<
Grid.RowDefinitions
>
<
RowDefinition
Height
="Auto"/>
<
RowDefinition
Height
="Auto" />//
增长一行
<
RowDefinition
Height
="*"/>
</
Grid.RowDefinitions
>
<!--
第一行为标题 -->
<
StackPanel
x
:
Name
="TitlePanel"
Grid.Row
="0"
Margin
="12,17,0,28">
<
TextBlock
x
:
Name
="ApplicationTitle"
Text
="MY APPLICATION"
Style
="{
StaticResource
PhoneTextNormalStyle
}"/>
<
TextBlock
x
:
Name
="PageTitle"
Text
="Hello"
Margin
="9,-7,0,0"
Style
="{
StaticResource
PhoneTextTitle1Style
}"/>
</
StackPanel
>
<!—
第二行,定义为两列,放置两个控件,第1列宽度设置为”*”,尽量伸展宽度,第2列宽度设置为”Auto”根据控件的宽度而调整 -->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Grid.ColumnDefinitions >
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Name="textBox1" Text="" Margin="20" ontSize="{StaticResource PhoneFontSizeExtraLarge}" />// FontSize
属性值读取资源
<Button Content="
点击" HorizontalAlignment="Right" Grid.Column="1" Name="button1" Margin="20" Padding="8" Click="button1_Click" />
</Grid>
<!—
增长第三行,显示用户输入, HorizontalAlignment为伸展Stretch -->
<Grid Grid.Row="2" Name="grid1" VerticalAlignment="Top" >
<TextBlock Name="textBlock1" Text="" Style="{StaticResource PhoneTextExtraLargeStyle}" HorizontalAlignment="Stretch" Foreground="Red" TextWrapping="NoWrap" TextAlignment="Center" FontWeight="Bold" />
</Grid>
</
Grid
>
</
Grid
>
(8)
双击命令按钮,建立事件处理函数,在代码隐藏文件中对应的单击事件处理程序中插入代码,以下所示:
private void button1_Click(object sender, RoutedEventArgs e)
{
textBlock1.Text = textBox1.Text;
textBox1.Text = String.Empty;
}
(9)按F5键运行程序,在文本框中输入后,单击 “单击我”按钮,将会在第二个TextBlock显示输入的内容。显示效果如图1-4:
图1-4
(10)如需调试应用程序,切换到Visual Studio,将光标定位到下面这一行:
textBlock1.Text = textBox1.Text;
按F9或单击该行左边,插入断点,会看到页边显示一个红点。
(11)F5运行后,Visual Studio会中止于断点行,这时可查看相应的变量值等,可进一步调试程序。
7天学习主要参考资料以下,并特此鸣谢!
1.
WP7TrainingKitOffline
2.
林永坚.Silverlight for Windows Phone 开发系列
3.
张崟.Windows Phone 7 开发 31 日谈
4.
306ROOM(
网名).一块儿学windows phone7