Windows Phone 7 开发谈.docx

上传人:b****6 文档编号:7301613 上传时间:2023-01-22 格式:DOCX 页数:103 大小:4.33MB
下载 相关 举报
Windows Phone 7 开发谈.docx_第1页
第1页 / 共103页
Windows Phone 7 开发谈.docx_第2页
第2页 / 共103页
Windows Phone 7 开发谈.docx_第3页
第3页 / 共103页
Windows Phone 7 开发谈.docx_第4页
第4页 / 共103页
Windows Phone 7 开发谈.docx_第5页
第5页 / 共103页
点击查看更多>>
下载资源
资源描述

Windows Phone 7 开发谈.docx

《Windows Phone 7 开发谈.docx》由会员分享,可在线阅读,更多相关《Windows Phone 7 开发谈.docx(103页珍藏版)》请在冰豆网上搜索。

Windows Phone 7 开发谈.docx

WindowsPhone7开发谈

WindowsPhone7开发31日谈——第1日:

项目模板

分类:

WindowsPhone7开发31日谈WindowsPhone72010-11-0116:

266222人阅读评论(4)收藏举报

ByJeffBlankenburg

在写“WindowsPhone7开发31日谈”系列的首篇文章时,我们需要做一些假设。

首先,我假设你懂一些Silverlight的知识。

去年我写过一个Silverlight31日谈的系列文章,所以我建议如果没接触过Silverlight你可以从那儿开始学习。

本系列中的所有文章都假设你有Silverlight的基础知识。

其次,我假设你已经安装了所有所需的工具。

你可以在这里找到并下载它们。

你需要VisualStudio2010forWindowsPhone和ExpressionBlend4forWindowsPhone。

这两个你一定会用到,同时它们完全免费。

如果你已经有了这些软件的正式版,它们将会更新这些项目的模板而非在你的机器上添加新的软件。

好了,我们开始吧。

今天,我们来看看在启动VisualStudio2010时自带的一个默认的WindowsPhone项目模板:

WindowsPhoneApplication。

SolutionExplorer(解决方案管理器)

来看一下默认项目的解决方案管理器。

我不准备解释每个文件的所有内容,但我会介绍它们的作用。

如果你想看这些内容,安装这些工具来试试!

非常简单!

(在文章的结尾处我提供了可供下载的项目文件,如果你感觉自己比较懒的话。

ApplicationIcon.png

用来代表你程序的图片,你可以用另外的一个来替换这个图片。

用户会在他们的程序中将看到此图片。

它很重要,一定要设计好。

App.xaml

这个文件和ASP.NET中的web.config文件很相似。

你可以将供整个应用程序使用的数据和设置保存在此处。

我也很喜欢将我的样式数据放在此文件中,但这并不是必须的。

App.xaml.cs

上面那个文件的“代码后置”文件,在这儿你可以处理程序的“墓碑”。

我们会在第14天中讲解多任务和墓碑的概念。

AppManifest.xml

生成应用程序安装包(XAP)所需的一个简单的应用程序清单文件。

AssemblyInfo.cs

另一个配置文件,它包含了名称和版本的元数据,会被嵌入到生成的程序集文件中。

Background.png

当你的程序被显示到开始界面中就会显示这个图像。

它应该和ApplicationIcon.png一样被精雕细琢。

MainPage.xaml

你的首个程序页面。

几乎在每个项目中,它都不应该成为唯一的页面。

电话还可以处理页面间的前后导航,所以你不应该将所有的功能都堆积到一个XAML页面中。

把它们分开,以后你会感谢我的。

我们会在明天的文章中深度探索页面间导航。

MainPage.xaml.cs

主页面的“代码后置”文件。

当你需要在代码中控制一些行为时,通常在这里进行。

与XAML文件中的对象进行交互几乎是必不可少的。

在这个系列的文章中会涵盖大量的有关在这个文件(或其他的XAML代码后置文件)中写代码的话题。

SplashScreenImage.jpg

如果你的应用程序需要花费较长时间来载入时会默认显示此图片。

你可以自己选择来替换掉这个图片,但记住这仅仅是让用户知晓他们在等待真正的应用程序载入。

WMAppManifest.xml

另一个包含了应用程序特定数据的元数据文件,包括标题,图标位置,功能等等。

下载代码示例:

正如我先前提到的,明天会将页面间导航。

再见!

WindowsPhone7开发31日谈——第2日:

页面导航

分类:

WindowsPhone7WindowsPhone7开发31日谈2010-11-0120:

512902人阅读评论

(2)收藏举报

ByJeffBlankenburg

本文是“WindowsPhone7开发31日谈”系列的第2日。

今天,我们来探讨如何在SilverlightforWindowsPhone中进行页面间导航。

这非常重要,原因有二:

首先,你不会愿意在一个XAML文件中构建整个应用程序。

第二,因为下面的原则,你的程序会自动利用手机内建的返回按键。

这允许你的用户想返回到之前的操作时可以向前导航。

明天我们来深入讨论返回按键。

在页面间导航有很多种方法,但是我打算只讲一种。

我更喜欢叫它简单Web导航。

正如其名,这里采取的方式正如你在HTML页面中导航相似。

当然还有一些其他的框架可用(像MVVM),但是本篇文章的目的是讲解这个简单的方法。

简单Web导航

假设我们有很多页面,并且我们想给用户能在它们之间穿梭的一种方式。

先来构建一个简单的导航UI让我们能做以上的事情,现在开始:

1)创建一个新的WindowsPhoneApplication。

2)添加几个WindowsPhone纵向页面。

我们将在第4日讨论页面方向(纵向和横向)。

现在只谈纵向。

我创建了3个纵向页面:

Pasta.xaml,Sauce.xaml和Cheese.xaml。

我将用几种不同的方法把它们联系在一起。

3)改变页面的标题,以便在页面变更后可以知道所在的位置。

当你创建一个新页面时,有一个叫“PageTitle”的XAML元素它默认被设置为“pagename”。

在每个页面中都更改这个元素以便于知道你当前处于哪个页面。

我喜欢这样做因为可以减少出错的几率。

你会发现当你投入精力制作一个项目时起初的代码看起来都很相似,所以让他们看起来有所区别(至少在编码时)会有很大帮助。

4)在MainPage.xaml中创建几个超链接(hyperlink)。

在页面间建立链接,有几种不同的方式。

第一种是全XAML解决方案。

为此,我们可以使用超链接按钮(HyperlinkButton)控件。

以下是代码:

当你运行项目时,你可以点击任何一个超链接按钮然后跳转到相应的页面中。

使用返回键同样可以使你回到上一个界面。

如果你返回多次,你会发现一旦越过了程序的第一页你就离开了当前的应用程序。

5)通过代码导航到页面。

如果你喜欢通过代码而非完全使用XAML,你可以仅仅用一些XAML元素来实现。

在本例中,我们使用按钮。

我创建了3个按钮,每一个都指向相同的事件处理程序。

在下面的C#代码中,你会看到我实际上检测了是哪个按钮被点击了,然后导航至相应的页面。

返回键的所有功能仍然可用。

XAML

Name="PastaButton"Content="Pasta"Click="Button_Click"Width="200"Height="75"/>

Name="SauceButton"Content="Sauce"Click="Button_Click"Width="200"Height="75"/>

Name="CheeseButton"Content="Cheese"Click="Button_Click"Width="200"Height="75"/>

C#

privatevoidButton_Click(objectsender,RoutedEventArgse)

{

ButtonclickedButton=senderasButton;

switch(clickedButton.Name)

{

case"PastaButton":

NavigationService.Navigate(newUri("/Pasta.xaml",UriKind.Relative));

break;

case"SauceButton":

NavigationService.Navigate(newUri("/Sauce.xaml",UriKind.Relative));

break;

case"CheeseButton":

NavigationService.Navigate(newUri("/Cheese.xaml",UriKind.Relative));

break;

}

}

正如你看到的,仅仅使用了NavigationService就将用户的动作记录了下来,同时使用返回键就可以使他沿着决策树返回。

下载示例代码:

明天,我们探索如何利用返回按键来实现更多的功能。

WindowsPhone7开发31日谈——第3日:

返回键

分类:

WindowsPhone7WindowsPhone7开发31日谈2010-11-0200:

291976人阅读评论(3)收藏举报

ByJeffBlankenburg

本文是“WindowsPhone7开发31日谈”系列的第3日。

昨天,我们讨论了页面导航,以及如何简单的调用NavigationService从而到达程序中的不同页面。

简要地提到了返回键,但返回键的复杂性是值得在本系列中单独成文的,主要是因为你可以重写(override)返回键的行为。

返回键如何工作

和浏览器中的返回按钮很相似。

你可以点击它通过会话的决策信息后退。

它能让你跨越多个站点,还有这些站点中的每个页面。

WindowsPhone中的返回键工作方式与之相同。

它能让你回到之前访问过的页面,甚至是跨应用程序!

例如,如果我:

1.打开人物中心(PeopleHub)。

2.在联系人列表中选择“JeffBlankenburg”。

3.点击他的家庭地址(使我们进入地图应用程序)。

4.点击开始按钮。

5.开始游戏。

当点击返回键时,会沿着发生的事件列表后退。

重写返回键行为

是的,你没看错!

你可以如你所想重定义返回键的行为。

但这不表明允许你通过这种能力做一些不负责任的行为。

在任何你想重写返回键行为的时候,你应该确认你所认为的“返回”的意思和你的用户所想的是一样。

例如,你打开了一个弹出框,用户的肌肉记忆可能会使他们按下返回键来关闭弹出框。

在这种情况下,他们的本意不是离开应用程序,“返回”仅仅意味着摆脱弹出的对话框。

另一个例子,如果你有个游戏依赖于计时器或实时动作,使用返回键来暂停游戏就比较合适而非让人立即离开。

下面是一些此类事件的指导原则:

1.你应该设身处地为用户考虑那一时刻“返回”对他们意味着什么。

2.如果再次用户按下返回键,你应该让默认行为执行。

3.使用返回键暂停游戏是个非常好的想法,但再按一次意味着他们真的想返回到前面,那就得让他们能后退。

这是在WindowsPhone中重写返回键的代码:

protectedoverridevoidOnBackKeyPress(System.ComponentModel.CancelEventArgse)

{

//你自己的代码。

认真负责些。

e.Cancel=true;//取消默认行为。

}

明天我们讨论设备的方向以及如何在程序中处理横纵方向问题。

WindowsPhone7开发31日谈——第4日:

设备方向

分类:

WindowsPhone7WindowsPhone7开发31日谈2010-11-0216:

201721人阅读评论

(1)收藏举报

ByJeffBlankenburg

本文是“WindowsPhone7开发31日谈”系列的第4日。

昨天我们讨论了WindowsPhone的一个专用硬件按钮——返回键.今天我们聚焦另一个硬件特性:

设备方向。

纵向和横向

这两个术语区别并不太明显,纵向是设备的垂直方向,横向是水平方向。

这两种方向在WindowsPhone7中都支持,但默认情况下,Silverlight程序以纵向开始,XNA程序以横向开始(游戏通常在宽屏下表现会更好)。

本篇文章中,我们只讨论Silverlight程序,以及方向改变后如何去做,因为在用户使用程序时方向的变化是不可避免的。

默认项目是“只支持纵向的”

如果你看一下MainPage.xaml文件的头部信息,会发现两个属性:

SupportedOrientations="Portrait"Orientation="Portrait"

可以将SupportedOrientations想象成你准备在程序中支持的可能发生的情况的列表。

你可以将SupportedOrientations设置成以下3个值中的任意一个:

∙Portrait(默认值)

∙Landscape

∙PortraitOrLandscape

Orientation属性是想让你的程序在启动时以何种方式呈现。

它有更多的值可选,但记住如果想要以横向模式启动,你需要将横向包含到SupportedOrientations中。

下面是Orientation值的列表:

∙Landscape

∙LandscapeLeft(将电话向左翻转)

∙LandscapeRight(将电话向右翻转)

∙Portrait

∙PortraitDown(正常的竖直方向)

∙PortraitUp(倒置)

你可以看到在上表中不仅可以指定纵向或横向,还可以指定这些方向的排列方式。

这允许你用你喜欢的方向开始你的应用程序。

改变方向

有两种方式可以改变设备的方向。

第一将SupportedOrientation设置为“PortraitOrLandscape”让操作系统为你实现。

在大多数情况下,并不推荐这样做,因为你的应用程序界面可能不再适应屏幕了。

第二种方式是通过代码实现。

我们来看一个例子。

这个简单的界面占据了整个竖直方向的屏幕。

你可以看到在横向时,很多按钮不在屏幕之中。

这不是理想的用户体验。

简单解决方法是去掉标题。

我确信我们的用户可以看出这是一个计算器。

我们可以对按钮进行重新布局,如果对于程序来说有意义,那就去做!

本篇文章的目的是告诉你如何改变你的程序,而不是告诉你应该改变什么。

我用了以下的代码来使标题栏消失和重现(这是MainPage.xaml.cs文件的全部内容):

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Net;

usingSystem.Windows;

usingSystem.Windows.Controls;

usingSystem.Windows.Documents;

usingSystem.Windows.Input;

usingSystem.Windows.Media;

usingSystem.Windows.Media.Animation;

usingSystem.Windows.Shapes;

usingMicrosoft.Phone.Controls;

namespaceDay4_DeviceOrientation

{

publicpartialclassMainPage:

PhoneApplicationPage

{

//Constructor

publicMainPage()

{

InitializeComponent();

this.OrientationChanged+=newEventHandler(MainPage_OrientationChanged);

}

voidMainPage_OrientationChanged(objectsender,OrientationChangedEventArgse)

{

if((e.Orientation==PageOrientation.LandscapeRight)||(e.Orientation==PageOrientation.LandscapeLeft))

{

TitlePanel.Visibility=Visibility.Collapsed;

}

elseif((e.Orientation==PageOrientation.PortraitDown)||(e.Orientation==PageOrientation.PortraitUp))

{

TitlePanel.Visibility=Visibility.Visible;

}

}

}

}

因为我只关注程序是横向还是纵向(而不是所有的方向),所以同时检测这两个状态并相应地调整界面。

你可以将每种情况分开处理使界面看起来不同。

注意我为OrientationChanged事件创建的处理程序。

这是一个在方向改变时最简单的识别方法,通常你可以使用将在第11天介绍的加速计。

看一下使用新代码后最终的例子:

下载示例代码

这不是一个可以使用的计算器,但作为一个初学者项目你可以试试。

欢迎下载这个项目,并添加缺失的功能。

WindowsPhone7开发31日谈——第5日:

系统主题

分类:

WindowsPhone7开发31日谈WindowsPhone72010-11-0221:

311781人阅读评论

(1)收藏举报

ByJeffBlankenburg

本文是“WindowsPhone7开发31日谈”系列的第5日。

昨天,我讲解了设备方向,以及在用户改变他们的设备方向时如何适应这些改变。

今天,我们来看看在他们更改了电话的主题和颜色后我们该做些什么。

深色与浅色主题

如果你还没看到,可以将你电话的主题由深改为浅,并设置一个强调色。

来看一下相同的应用程序使用了两个不同主题:

强调色

你的用户可以设置一个系统级的强调色。

操作系统提供了10种大方明快的颜色供选择。

这些颜色不仅会在电话的起始屏幕中得到充分利用,还可以供你的应用程序来使用。

来看一下这些颜色:

考虑默认值

当创建应用程序时,经常会去改变某些东西的颜色。

我很支持这种做法。

这随你。

不过你改的越多,你就越想将所有内容都改掉。

我不建议你在白色背景下使用深色文字(或者相反)。

我是说如果你想有意让某些东西变为白色,你要仔细考虑如果电话的主题变为白色时它将会变为什么样子(可能会看不到哦)。

幸好,有一种简单的方法可以处理它,叫做ExpressionBlend4。

ExpressionBlend4中的设备标签

首先,在ExpressionBlend中打开项目。

最简单的方法是在VisualStudio中右击此项目,选择“OpenInExpressionBlend…”

打开后,在Blend的UI中有一个标签叫“Device”,看起来像这样:

这个标签允许你预览右侧设计层中不同的主题和强调色。

这我们开始在程序中使用这些颜色时非常重要。

例如,我想在我的程序中使用一个带颜色的背景,颜色让用户指定。

为了做到这一点,我用了ExpressionBlend4的另一个出色的特性:

颜色资源标签。

颜色资源

在你对这批文章写“为什么我非得用ExpressionBlend的呢?

我是开发人员!

”这样的评论之前让我告诉你:

所有的这一切都可以用VisualStudio2010完成。

但那非常非常困难。

在采用复杂方法并不会带来更多裨益时我更倾向于用简单方法实现。

在你没有覆盖它们时WindowsPhone7会使用一套默认颜色集,在很多情况下,认识这些颜色对你很有益。

在下面的图片中,可以看到PhoneAccentColor和PhoneBackgroundColor根据我在设备标签中选择的主题和强调色进行改变。

第一个是深/蓝,第二个是浅/橙。

在程序中选择这些颜色后,它允许我们绑定到特定的系统值,当用户改变主意时,程序可以迅速的反映出改变。

在下面的代码中,你会看到我在程序中添加了一个使用了渐进色的矩形,从PhoneBackgroundColor过渡到PhoneAccentColor。

我还设置了应用程序的标题,同样利用了电话的强调色。

Name="LayoutRoot"Background="Transparent">

--TitlePanelcontainsthenameoftheapplicationandpagetitle-->

--TitlePanelcontainsthenameoftheapplicationandpagetitle-->

Name="TitlePanel"Grid.Row="0"Margin="12,17,0,28">

Name="Application

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1