本人今天突然想学习Windows Phone 7 ,想在这里记录下我个人学习的点滴。也是在工作之余充实下自己。从今天起每星期至少3天更新这类学习心得,让此见证我学习的过程。

---------内容开始---------

第一个手机程序

首先新建一个WP的程序(VS2010),然后修改他的名称(Name)和位置(Location)。当创建好之后,你会看到一个屏幕面积480×800像素大小的一个纵向模式的大屏幕手机图像.这就是设计视图了。在VS右边Solution Explorer里的Properties下面你会看到3个文件。AppManifest.xml、AssemblyInfo.cs、WMAppManifest.xml。打开WMAppManifest.xml,在APP的标签中 找到title属性 它的值就是显示在手机或者手机模拟器中程序列表的名称。在项目的根目录下,你将会看到3个图片信息。其中ApplicationIcon.png为手机或者手机模拟器中程序列表中你项目的图片。

在VS的菜单栏 (小绿色三角的旁边),有一个下拉菜单,里面分别是Windows Phone 7 Emulator和Windows Phone 7 Device. 选择Windows Phone 7 Emulator之后点击Debug按钮,这样就会出现WP7的模拟器了。之后点击微软的图片进入菜单,你将会看到你的应用程序出现在程序列表中。

一个标准的Silverlight文件

在Solution Explorer的根目录下 你将会看到这样的2对文件 App.xaml 、 App.xaml.cs  和 MainPage.xaml 、MainPage.xaml.cs 

其中后缀为.xaml 为可扩展应用程序标记语言。后缀为 .cs 的时候C#语言。他们提供对标记代码的支持。下面是 App.xaml.cs 的结构:

namespace SilverlightHelloPhone
{
public partial class App : Application
{

// 手机应用程序根框架。
public PhoneApplicationFrame RootFrame { get; private set; }

// Application对象的构造函数
public App()
{
// 全局未捕获异常处理程序.
UnhandledException += Application_UnhandledException;

// 省略部分代码
}

// 标准Silverlight初始化
InitializeComponent();

// Phone特定的初始化
InitializePhoneApplication();
}
}

所有的Silverlight应用程序都继承Application类。这个类执行应用范围的初始化,启动和关闭。因为这个类是用partial 定义,这意味着该项目应该包括另外的的C#文件。所以这个项目还包含App.xaml文件:

<Application
x:Class
="SilverlightHelloPhone.App"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone
="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell
="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">

<!--Application Resources-->
<Application.Resources>
</Application.Resources>

<Application.ApplicationLifetimeObjects>
<!--Required object that handles lifetime events for the application-->
<shell:PhoneApplicationService
Launching
="Application_Launching" Closing="Application_Closing"
Activated
="Application_Activated" Deactivated="Application_Deactivated"/>
</Application.ApplicationLifetimeObjects>

</Application>
App类就是从Application派生出来的。元素包含四个XML命名空间声明:前面两个是通用silverlight的声明,后面两个则是对Phone的声明。

第一个xml的命名空间声明是一个标准的silverlight声明。

第二个XML命名空间声明是与XAML的本身相关联,它允许引用文件中的一些元素和属性,是XAML的一部分,而不是具体的Silverlight按照惯例,这个命名空间是有一个“X”的前缀。

MainPage是第二个主要的类在所有的silverlight项目中,并且也是定义一对文件,即 MainPage.xaml 和 MainPage.xaml.cs 。

在 MainPage.xaml 的根元素里 你将会看到关于FontFamily,FontSize,Foreground的设置。他将应用与整个页面。


MainPage.xaml 说明

 

<!--LayoutRoot is the root grid where all page content is placed-->
<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="xiaobai" 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">
<TextBlock Text="Hello, Windows Phone 7!"
HorizontalAlignment
="Center"
VerticalAlignment
="Center" />
</Grid>
</Grid>

首先<Grid>标签就是以手机屏幕为基准定义了一个灵活的并且是由列(columns)和行(rows)所组成的网格式区域。当你使用鼠标在Grid区域顶部滑动时,你会发现<RowDefinition Height="*"/>的值会发生改变。

<StackPanel>标签 将子元素排列成一行(可沿水平或垂直方向)。其中Grid.row是附加属性。目的是获取或设置一个值,该值指示Gird中的子内容应出现在哪个行内。

在<SrackPanel>标签内有一个<TextBlock>标签用以提供用于显示少量流内容的轻量控件。

在内容的显示区域中又一次的使用了<Grid>标签。目的是在手机中显示Hello,Windows Phone 7. <TextBlock>标签中的HorizontalAlignment是获取或设置在布局父级(如面板或项控件)中构成 FrameworkElement 时应用于此元素的水平对齐特征。VerticalAlignment则是获取或设置在父对象(如面板或项控件)中构成 FrameworkElement 时应用于此元素的垂直对齐特征。

运行之后。你会看到一个全新的界面。

(一)完。

posted on 2011-03-23 18:02  confusing  阅读(356)  评论(0编辑  收藏  举报