Windows Phone 7 开发谈Word格式.docx
- 文档编号:20409548
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:103
- 大小:4.33MB
Windows Phone 7 开发谈Word格式.docx
《Windows Phone 7 开发谈Word格式.docx》由会员分享,可在线阅读,更多相关《Windows Phone 7 开发谈Word格式.docx(103页珍藏版)》请在冰豆网上搜索。
我们会在第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)收藏举报
本文是“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)控件。
以下是代码:
<
HyperlinkButtonContent="
Pasta"
NavigateUri="
/Pasta.xaml"
Height="
30"
HorizontalAlignment="
Left"
Margin="
10,10,0,0"
Name="
hyperlinkButton1"
VerticalAlignment="
Top"
Width="
200"
/>
Sauce"
/Sauce.xaml"
hyperlinkButton2"
Cheese"
NavigateUri="
/Cheese.xaml"
hyperlinkButton3"
当你运行项目时,你可以点击任何一个超链接按钮然后跳转到相应的页面中。
使用返回键同样可以使你回到上一个界面。
如果你返回多次,你会发现一旦越过了程序的第一页你就离开了当前的应用程序。
5)通过代码导航到页面。
如果你喜欢通过代码而非完全使用XAML,你可以仅仅用一些XAML元素来实现。
在本例中,我们使用按钮。
我创建了3个按钮,每一个都指向相同的事件处理程序。
在下面的C#代码中,你会看到我实际上检测了是哪个按钮被点击了,然后导航至相应的页面。
返回键的所有功能仍然可用。
XAML
Buttonx:
PastaButton"
Content="
Click="
Button_Click"
75"
SauceButton"
CheeseButton"
C#
privatevoidButton_Click(objectsender,RoutedEventArgse)
{
ButtonclickedButton=senderasButton;
switch(clickedButton.Name)
{
case"
:
NavigationService.Navigate(newUri("
UriKind.Relative));
break;
}
正如你看到的,仅仅使用了NavigationService就将用户的动作记录了下来,同时使用返回键就可以使他沿着决策树返回。
下载示例代码:
明天,我们探索如何利用返回按键来实现更多的功能。
WindowsPhone7开发31日谈——第3日:
返回键
WindowsPhone7WindowsPhone7开发31日谈2010-11-0200:
291976人阅读评论(3)收藏举报
本文是“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)收藏举报
本文是“WindowsPhone7开发31日谈”系列的第4日。
昨天我们讨论了WindowsPhone的一个专用硬件按钮——返回键.今天我们聚焦另一个硬件特性:
设备方向。
纵向和横向
这两个术语区别并不太明显,纵向是设备的垂直方向,横向是水平方向。
这两种方向在WindowsPhone7中都支持,但默认情况下,Silverlight程序以纵向开始,XNA程序以横向开始(游戏通常在宽屏下表现会更好)。
本篇文章中,我们只讨论Silverlight程序,以及方向改变后如何去做,因为在用户使用程序时方向的变化是不可避免的。
默认项目是“只支持纵向的”
如果你看一下MainPage.xaml文件的头部信息,会发现两个属性:
SupportedOrientations="
Portrait"
Orientation="
可以将SupportedOrientations想象成你准备在程序中支持的可能发生的情况的列表。
你可以将SupportedOrientations设置成以下3个值中的任意一个:
∙Portrait(默认值)
∙Landscape
∙PortraitOrLandscape
Orientation属性是想让你的程序在启动时以何种方式呈现。
它有更多的值可选,但记住如果想要以横向模式启动,你需要将横向包含到SupportedOrientations中。
下面是Orientation值的列表:
∙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<
OrientationChangedEventArgs>
(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)收藏举报
本文是“WindowsPhone7开发31日谈”系列的第5日。
昨天,我讲解了设备方向,以及在用户改变他们的设备方向时如何适应这些改变。
今天,我们来看看在他们更改了电话的主题和颜色后我们该做些什么。
深色与浅色主题
如果你还没看到,可以将你电话的主题由深改为浅,并设置一个强调色。
来看一下相同的应用程序使用了两个不同主题:
强调色
你的用户可以设置一个系统级的强调色。
操作系统提供了10种大方明快的颜色供选择。
这些颜色不仅会在电话的起始屏幕中得到充分利用,还可以供你的应用程序来使用。
来看一下这些颜色:
考虑默认值
当创建应用程序时,经常会去改变某些东西的颜色。
我很支持这种做法。
这随你。
不过你改的越多,你就越想将所有内容都改掉。
我不建议你在白色背景下使用深色文字(或者相反)。
我是说如果你想有意让某些东西变为白色,你要仔细考虑如果电话的主题变为白色时它将会变为什么样子(可能会看不到哦)。
幸好,有一种简单的方法可以处理它,叫做ExpressionBlend4。
ExpressionBlend4中的设备标签
首先,在ExpressionBlend中打开项目。
最简单的方法是在VisualStudio中右击此项目,选择“OpenInExpressionBlend…”
打开后,在Blend的UI中有一个标签叫“Device”,看起来像这样:
这个标签允许你预览右侧设计层中不同的主题和强调色。
这我们开始在程序中使用这些颜色时非常重要。
例如,我想在我的程序中使用一个带颜色的背景,颜色让用户指定。
为了做到这一点,我用了ExpressionBlend4的另一个出色的特性:
颜色资源标签。
颜色资源
在你对这批文章写“为什么我非得用ExpressionBlend的呢?
我是开发人员!
”这样的评论之前让我告诉你:
所有的这一切都可以用VisualStudio2010完成。
但那非常非常困难。
在采用复杂方法并不会带来更多裨益时我更倾向于用简单方法实现。
在你没有覆盖它们时WindowsPhone7会使用一套默认颜色集,在很多情况下,认识这些颜色对你很有益。
在下面的图片中,可以看到PhoneAccentColor和PhoneBackgroundColor根据我在设备标签中选择的主题和强调色进行改变。
第一个是深/蓝,第二个是浅/橙。
在程序中选择这些颜色后,它允许我们绑定到特定的系统值,当用户改变主意时,程序可以迅速的反映出改变。
在下面的代码中,你会看到我在程序中添加了一个使用了渐进色的矩形,从PhoneBackgroundColor过渡到PhoneAccentColor。
我还设置了应用程序的标题,同样利用了电话的强调色。
<
Gridx:
Name="
LayoutRoot"
Background="
Transparent"
>
Grid.RowDefinitions>
RowDefinitionHeight="
Auto"
/>
*"
/Grid.RowDefinitions>
!
--TitlePanelcontainsthenameoftheapplicationandpagetitle-->
RectangleStroke="
Black"
Grid.RowSpan="
2"
Rectangle.Fill>
LinearGradientBrushEndPoint="
0.5,1"
StartPoint="
0.5,0"
GradientStopColor="
{StaticResourcePhoneBackgroundColor}"
Offset="
0"
{StaticResourcePhoneAccentColor}"
1"
/LinearGradientBrush>
/Rectangle.Fill>
/Rectangle>
StackPanelx:
TitlePanel"
Grid.Row="
Margin="
12,17,0,28"
TextBlockx:
Application
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows Phone 开发谈 开发
![提示](https://static.bdocx.com/images/bang_tan.gif)