posts - 113,  comments - 425,  trackbacks - 0

     由于我建的三个群都已经满了,但是每天还有很多朋友在加这几个群,为了能和大家更好的交流,大家可以加我的新浪微博 http://weibo.com/u/1766296144,我一直在线的!并且有什么最新的信息等等我也会最早的发到微博上来。

posted @ 2011-11-16 17:01 小镇 阅读(186) 评论(0) 编辑

   经过大半年的努力,我参与编写的微软官方Windows Phone 7中文版开发新书《Windows Phone 7应用开发指南 》终于出版了!
也终于结束了没有官方中文开发书辑的历史。这本书涉及到了WP7.x开发的方方面面,非常全面,并且还包含了大量的成功开发案例,
是一本从入门到深入的书。这本书的第八章和第九章是由我编写的,有什么问题或建议欢迎在我的博客上或给我发微博喔 http://weibo.com/u/1766296144
另外我这两章的开发实例也会分享到这个网站的bbs上。
这本书的可以在这里点击购买:http://www.amazon.cn/gp/product/B005UEOH4G/ref=as_li_qf_sp_asin_tl?ie=UTF8&tag=daisy123-23&linkCode=as2&camp=536&creative=3200&creativeASIN=B005UEOH4G

posted @ 2011-10-25 11:53 小镇 阅读(1523) 评论(9) 编辑
 

在千吃呼万唤中,终于可以获取联系人和增加联系人了!但是由于增加联系人是以Task方式来实现的,所以无法通过程序实现批量保存联系人。

 

一.新增了一个命名空间:Microsoft.Phone.UserData;在这个命名空间里新增了多个用于联系人的类,其中通过Contacts类可以异步获取联系人列表。

Contacts  _contact = new Contacts();

_contact.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(_contact_SearchCompleted);

_contact.SearchAsync(String.Empty, FilterKind.None, "Contacts Test #1");//在这里可以输入参数,过滤搜索结果

void _contact_SearchCompleted(object sender, ContactsSearchEventArgs e)

{

this.listBox1.ItemsSource = e.Results.ToList();

}

获取联系人的图片方法:

BitmapImage bi = new BitmapImage();

bi.SetSource(e.Results.First().GetPicture());

 

 

二.新增了Save Contact Task,这个task用来保存新的联系人,但是这个task中并没有给出直接选择照片或图片的方法,而是要在Task运行后,在Task中选择图片。

SaveContactTask  _task = new SaveContactTask();

_task.FirstName = "Randy";

_task.LastName = "Lee";

_task.Nickname = "xiaogem";

_task.MobilePhone = "1234567890";

_task.Completed += new EventHandler<SaveContactResult>(_task_Completed);//通过这个事件来判断是否保存成功。

 _task.Show();

posted @ 2011-10-12 11:32 小镇 阅读(1284) 评论(3) 编辑
 

这是一个非常有趣的画刷,可以产生视频的蒙板效果,这个画刷在Silverlight中早就有的,但是Windows Phone中却一直没有引入,不过在WP7.1 SDK正式版中这个特性被加入进来了,手机上也可以制做这种效果了。

一.原理

   

这里需要用到MediaElement控件来做为Video 的载体,也就是说由这个控件来播放Video,然后将这个控件做为VideoBrush的源来使用,而VideBrush又以型状控件、容器控件或文字控件的ForegroundBackgroundPath形式加入到这些控件中,从而利用这些控件的形状或内容做为蒙板产生笔刷效果。

注意:在模拟器上无法看到效果,只有用真机才可以。

二.实现

1.产生文字蒙板效果

<MediaElement x:Name="meVideo" IsHitTestVisible="False" Source="Wildlife.wmv" AutoPlay="True"/>

            <TextBlock Text="Video" FontSize="150" FontWeight="Bold">

                <TextBlock.Foreground>

                    <VideoBrush SourceName="meVideo"/>

                </TextBlock.Foreground>

            </TextBlock>

 

2. 形状蒙板效果

         <Ellipse Width="200" Height="200" VerticalAlignment="Top">

                <Ellipse.Fill>

                    <VideoBrush SourceName="meVideo"/>

                </Ellipse.Fill>

            </Ellipse>

3. 容器蒙板效果

<StackPanel Width="200" Height="200">

                <StackPanel.Background>

                    <VideoBrush SourceName="meVideo"/>

                </StackPanel.Background>

            </StackPanel>

4. 按钮控件效果

<Button Width="300" Height="150" Content="Video">

                <Button.Background>

                    <VideoBrush SourceName="meVideo"/>

                </Button.Background>

            </Button>

5. 按钮控件文字蒙板效果

<Button Width="300" Height="150">

                <Button.Content>

                    <TextBlock Text="Video" FontSize="100" FontWeight="Bold">

                <TextBlock.Foreground>

                    <VideoBrush SourceName="meVideo"/>

                </TextBlock.Foreground>

                    </TextBlock>

                </Button.Content>

            </Button>

 

由以上效果可以看出,这个笔刷和其他的笔刷使用起来基本上一样,可以用于多种控件上,也可以产生多种蒙板效果。

posted @ 2011-10-11 11:26 小镇 阅读(1173) 评论(2) 编辑
 

822Windows Phone marketplace可以提交7.1 sdk开发的应用了,尽管提交页面和方式与7.0是同一个,但是还是会出现一些问题。并且在提交之前也注意一些问题。

1.       7.0 应用转为7.1应用

我之前有一些应用都是在7.0下开发的,但是因为要用到7.1的一些新特性,所以就需要把应用转成7.1然后再继续开发。

转换方法:

1)  打开工程属性页面,将目标版本改为7.1

2)  在工程上单击右键,选择“Upgrade to Windows Phone 7.1”菜单

另外还需要注意的是:如果转为7.1后,一般就无法改回7.0了。

 

一般如果开发应用时是直接在7.1下开发的,应该没有什么问题,但是许多人的应用开发中或开发完成了,要转成7.1再发布的话,在发布到Marketplace上时就会出现[NeutralResourceLanaguge]这样一个错误。

这是因为在转换时,IDE工具并没有把AssemblyInfo做修改,所以需要手工自已完成。

点击Assembly Information按钮,在Neutral Lanaguage中选择语言。

注意:在这里也有中文,但目前还不能选,否则上传时,会报网络错误。

2.       测试

7.1 sdk中的Visual studio 2010中包含了一个测试工具,用来对上传Marketplace的应用进行测试。

首先注意要在Release模式下才可以进行测试。在单击工程的右键菜单中出现“Open Marketplace Test Kit”菜单项。打开工具,可以看到各个测试项目:

通过这个工具,可以对应用进行一些基本的测试,其中包括Capability的测试,这样就不用再像7.0那样,用命令方式来测试了。

3.       截图

对于截图,在7.0时是一件很麻烦的事,要通过工具来截,并且还要用图像工具进行修改后才可以上传。现在就不用了,7.1的模拟器集成了截图功能,这样就可以很方便的进行截图了,而且截取的图就可以直接用于上传了。

 

以上这些都完成了,上传应用就变的很容易了并且成功率也会提高了。不再会因为Capability等问题被退回了。

posted @ 2011-09-09 16:16 小镇 阅读(1335) 评论(7) 编辑
摘要: 今天微软发布了最新版的windows phone sdk,这个版本对应的系统是7720,也就是说是Mango的最新版本。由于这个版本是Release Candidate版,也标志着正式版的SDK也要临近了,并且也不会再有什么大的改动了。另外在这个版本里又增加了一些新的特性,比如alarm、OData等。下载地址:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27153还有,Toolkit for Windows Phone 7.1版也发布了,新增加了多个有用的控件,同时也修改了原来的一些bug。下阅读全文
posted @ 2011-08-23 11:27 小镇 阅读(1092) 评论(5) 编辑
摘要: 在Wp7.1中实现了多任务,允许应用程序在后台运行。通过Scheduled Task 和 Back Agent可以使程序在后台运行。BackgroundAgent是ScheduledTaskAgent, AudioPlayerAgent, AudioStreamAgent所有具有后台运行功能Agent的基类。ScheduledTaskAgent用于实现ScheduledTask,这个类包含一个OnInvoke方法,当ScheduledTask执行后会被调用。ScheduledTask包含PeriodicTask和ResourceIntensiveTask两种 Task。PeriodicTas.阅读全文
posted @ 2011-06-23 09:45 小镇 阅读(1982) 评论(10) 编辑
摘要: Daisy.WP7.Controls自定义控件库,在这次的1.2版中新增加了四个控件:EnhancedTextBlock控件、TabControl控件、TextBubble控件、InputBubble控件。1.EnhancedTextBlock控件:这个控件可以对显示的文本增加阴影,对需要强调的文字斜体、加粗、改变颜色、字体大小等。主要属性:IsShowShadow:是否显示阴影效果。Shadow:阴影颜色。EnhancedFontSize:强调字的大小。EnhancedFontFamily:强调字的字体。EnhancedFontStyle:强调字的样式。EnhancedFontWeight.阅读全文
posted @ 2011-06-22 15:29 小镇 阅读(603) 评论(4) 编辑
摘要: 终于在Wp7.1中加入了数据库,使保存、查找、插入数据不再痛苦。在WP7中如果要做到这些,要么使用XML自已实现,要么使用第三方数据库,但是第三方数据库要么性能不好,要么占用空间太大,要么收费,现在总算有原生的本地数据库了。1. 架构这个本地数据库,不能直接支持Transact-SQL,需要通过LINQ to SQL 对象模型作为Proxy来操作数据库,为此引入了一个新的类System.Data.Linq.DataContext。这与windows mobile上的SQL CE有了很大的差别。2. LINQ to SQL在Windows phone中,LINQ to SQL既不能直接支持执行.阅读全文
posted @ 2011-06-13 23:34 小镇 阅读(4308) 评论(15) 编辑
摘要: 在Wp7.1中又新增加了多个Task,可以实现对BingMap、铃声音使的操作。另外还有一些原来的Task的功能也得到了加强。1. BingMapsTask:用来调用Bingmaps,并且可以标记中心点、搜索、设置显示比例。与BingMaps控件相似但是可用api功能比较弱。_tskBingmap = new BingMapsTask(); _tskBingmap.Center = new GeoCoordinate(30.24, 120.123); _tskBingmap.SearchTerm = "West Lake"; _tskBingmap.ZoomLevel = 阅读全文
posted @ 2011-06-08 16:05 小镇 阅读(1366) 评论(3) 编辑