这是为《程序员》4月期写的文章,是在《两层惊喜——Windows Phone Developer Tools初体会》的基础上增加了一些内容,包含WebBrowser空间、MediaPlayer空间,还有一个十分简略的XNA程序。期望对Windows Phone开发有爱好的朋友有一些协助。
Windows Phone开发工具在MIX 2010上炽热上台了。Windows Mobile开发者们压抑良久的热心总算迸发出来,关于Windows Phone的富丽回身,开发者们褒贬不一,有人对Silverlight、 XNA等新技术充溢等待,有人对抛弃曾经版别兼容性、不支撑C++开发满腹怨言。
无论如何,Windows Phone为咱们带来了新的用户体会、新的开发工具,总比让开发者守着Windows Mobile的老面孔,一同渐渐变老,要好吧?下面,就让咱们看看Windows Phone开发工具会为开发者们带来哪些惊喜,呃,或许惊奇。
Windows Phone开发工具的社区预览版(CTP)能够在MSDN上下载。其间包含Visual Studio 2010 Express for Windows Phone, Windows Phone模拟器, Silverlight for Windows Phone和XNA 4.0 Game Studio。现在,Windows Phone开发工具只能安装在Windows 7和Vista SP2上,还需求显卡支撑DirectX 10。
翻开VS 2010后,我的感觉喜忧参半,喜的是Windows Phone供给了两种不同的开发渠道:Silverlight for Windows Phone和XNA 4.0,忧的是,曾经Windows Mobile的C++和.NET Compact Framework都用不上了。所以,曾经的Windows Mobile程序员也要阅历一个苦楚的转型进程。
接下来,咱们就看看Windows Phone带来的两层惊喜吧!
Silverlight for Windows Phone
Silverlight for Windows Phone几乎沦为一个笑话,Windows Mobile程序员在诉苦,Symbian上的Silverlight都出来了,Windows Mobile上的Silverlight在哪里?这次,Silverlight for Windows Phone来了,并且一切Windows Phone上的使用必须用Silverlight来写。
Silverlight最大的优势在于与Expression Blend的无缝整合,能够快速规划出十分美丽的用户界面,将程序员从繁琐的UI开发中解放出来。并且Silverlight for Windows Phone不再是Silverlight的子集,而是支撑Silverlight的悉数功用。这样的优点是,已有的Silverlight程序很简单移植到Windows Phone手机上。
在程序菜单的XNA Game Studio 4.0下翻开VS 2010,创立一个新工程,在Visual C#下找到三个模板,挑选”Windows Phone Application”。
不知道Phone List Application是啥,看起来Windows Phone的界面会以List为主了。点击OK后,会直接进入IDE的主界面:
似曾相识,左面是工具栏,能够拖拽控件到UI规划器上,与XAML界面对应。依据示例程序,我预备编写一个浏览器和媒体播映器,首先是从Toolbox中将MediaElement和WebBrowser控件拖拽到UI规划器上。
为了播映多媒体文件,咱们还要在Solution Explorer里将wmv文件添加到工程里。做法和Windows Mobile工程共同,挑选Content类型,wmv文件会和工程一同发布。
接下来便是编写代码了。MediaElement组件需求设置Source特点,然后调用Play办法。而WebBrowser挑选Navigate办法来访问指定网站。
private void button1_Click(object sender, RoutedEventArgs e)
{
textBlockListTitle.Text = textBox1.Text;
if (Convert.ToBoolean(checkBox1.IsChecked))
{
webBrowser1.Visibility = Visibility.Collapsed;
mediaElement1.Visibility = Visibility.Visible;
// play Video
mediaElement1.Source = new Uri(Wildlife.wmv, UriKind.Relative);
mediaElement1.Position = TimeSpan.FromMilliseconds(0);
mediaElement1.Play();
}
else
{
mediaElement1.Visibility = Visibility.Collapsed;
webBrowser1.Visibility = Visibility.Visible;
// Browser
webBrowser1.Navigate(new Uri(textBox1.Text, UriKind.Absolute));
}
}
代码修改完成后,挑选Windows Phone Emulator作为方针设备。直接按F5,Windows Phone Emulator会被发动。
Silverlight for Windows Phone类库中增加了许多Phone独有的功用。Microsoft.Phone的命名空间下,包含Phone、电话本、电子邮件、Camera、Bing地图、Marketplace、浏览器和查找等功用。Microsoft.Device.Sensors中包含各式各样的传感器,其间包含重力感应。Silverlight中还包含了Location和Push Notification等独有功用。
我的程序运转起来便是下面这个姿态。程序带有激烈的Zune风格,不光有标题,并且还有显着的Block List Title。别的便是输入法,带有显着iPhone的痕迹,不过对%&&&&&%屏的支撑看来不是问题了。
我还没有仔细看Windows Phone Emulator的完成机制,不过从发动速度来看,肯定不是把整个Windows Phone放在模拟器里执行了。本来Windows Device Emulator那个根据三星2410的小身板估量也跑不起来。横竖也是Managed Code,估量又是JIT编译那套。模糊间,似乎回到了Pocket PC 2002的时代。