01 2012 档案

摘要:哎,上班了没什么时间学习了,谈点小技巧。最近审查的时候遇到一个问题,研究很久才解决,原来是一个小问题就是MessageBox原来的代码是这样的,在没有输入IP的时候提示用户并跳转到配置页面。MessageBox.Show("使用前请先设置接收端IP");GoToConfig();//跳转到配置页面如果在WPF之类的写这样的代码没有什么大问题,但是WP7里面问题就出现了。在MessageBox的模态窗口打开的时候按一下“开始菜单”Win键会发生意想不到的情况就是MessageBox的模块窗口会被关闭,并且返回MessageBoxResult.None然后继续执行GoToCon 阅读全文
posted @ 2012-01-31 20:06 kiminozo 阅读(1079) 评论(7) 推荐(1) 编辑
摘要:春节期间在学习WP7开发,为了练手开发了一款简单的程序,在这里记录一下设计开发过程给大家分享。本人虽然有几年的C#开发经验,但是wp7程序还是刚刚开始学习。边学边开发边写文章,目录结构可能比较混乱,文章只记录了开发过程的知识点,没有详细的编码过程。如果有什么问题还请各位园友见谅。多媒体遥控器先卖个广告,介绍一下这个程序:寒冷的冬天在电脑上看电影、动漫等视频的时候,是不是不想伸手去按键盘呢,这款软件可以帮助您。此软件是一款迷你的多媒体遥控器,主要适合在客厅、卧室中喜欢用个人电脑看视频的朋友。 此软件能用您的手机方便的远程控制您的个人电脑上的媒体播放器,方便地控制视频播放、音量大小等。此软件使用注 阅读全文
posted @ 2012-01-30 20:06 kiminozo 阅读(3775) 评论(16) 推荐(10) 编辑
摘要:注册AppHub帐号首先使用Windows Live ID登录http://create.msdn.com/zh-CN 注册帐号,选择个人或者学生。如果想拥有免费帐号,AppHub为学生提供免费1年的使用,需要一个以edu.cn结尾的邮箱作为验证邮箱,如果你已经工作找你的后辈或者亲戚要一个吧。(不行入侵一个,好孩子不要学我) 点击“Get Verified”,然后按提示操作,选国家China,然后选自己edu.cn的邮箱的那个大学,验证之后邮箱会收到验证码Key.在https://www.dreamspark.com/Activate页面,输入从edu.cn那个邮箱中收到的邮件所得到的key, 阅读全文
posted @ 2012-01-30 20:03 kiminozo 阅读(1154) 评论(2) 推荐(0) 编辑
摘要:Toast 通知简介Toast 通知是推送通知的三种类型的其中一种。Toast 通知显示在屏幕的顶部,用于通知用户某个事件,如新闻或天气警报。除非用户通过向右轻拂关闭通知,否则 Toast 将显示大约 10 秒钟。如果用户点按 Toast,则会启动发送该 Toast 通知的应用程序。Toast 通知的元素如下:标题。紧挨着应用程序图标之后显示的黑体字字符串。在 XML 架构中,该字符串定义为 Text1 属性。内容。紧挨着“标题”之后显示的非黑体字字符串。在 XML 架构中,该字符串定义为 Text2 属性。参数。如果用户点按 Toast,则将参数值传递给您的应用程序,而不进行显示。该参数可以 阅读全文
posted @ 2012-01-28 14:07 kiminozo 阅读(1840) 评论(0) 推荐(0) 编辑
摘要:推送通知是WP开发中一个非常重要的概念,因为我这个项目可能不需要,但是有必要学习一下。MSDN讲得很清楚,园子里也有很多相关文章,这里简单提一下好了。推送通知了解C/S架构的朋友都知道,客户端到服务器的消息传输可以是双向的,客户端即可以主动从服务器获取消息,也可以被动接受来自服务器通知,而不像纯B/S架构浏览器只能主动从服务器获取消息。而且WP手机虽然是C/S模式,但是微软不允许手机被动接收服务器的消息,但是这样无法实现服务器通知。WP提供了一种代理的机制来实现服务器通知,这就是推送通知。推送通知是一种云服务器代理,服务器不能直接向手机客户端发送消息,必须通过云服务器代理发送。MSDN的官方流 阅读全文
posted @ 2012-01-28 13:38 kiminozo 阅读(1934) 评论(0) 推荐(0) 编辑
摘要:续上一篇对MVVM模式的简单介绍,可以了解到MVVM需要编写许多的自定义Command和Action之类的,而且每个类都需要设置DataContext。操作和代码比较重复,为了减少代码量并统一标准,需要引入MVVM框架提高效率。开源的MVVM框架有: PRISM:由微软提供,和 MEF/Unity 一起用于依赖注入,支持组合命令,可以扩展。MSDN 上有详细的教程和演练。 MVVM Light Toolkit:有 visual Studio 和 Expression Blend 的项目和项的模板。更多信息请看这里,另外可以参考 VS 和 Expression Blend 的使用教程。 Cali 阅读全文
posted @ 2012-01-27 20:47 kiminozo 阅读(4757) 评论(7) 推荐(9) 编辑
摘要:Model-View-ViewModel 设计模式MVVM这个模式在WPF和Silverlight开发中已经非常流行了,因为WP7的应用开发也是Silverlight的,MVVM的一样可以适用。虽然MVVM有不少明确的定义,但是我也没有找到比较统一的来描述它,所以大概说一下我的总结:MVVM和MVC、MVP一样都是为了分离呈现和业务为目标的设计模式,MVVM使用了WPF系列库特有的绑定机制从视图层移除绝大部分的业务处理和业务数据提供的逻辑。于独立的视图模型层更有利于测试。大概结构如下:View更关注界面的呈现,ViewModel更关注业务处理,Model作为之间交互的模型数据。MVVM的绑定 阅读全文
posted @ 2012-01-27 15:37 kiminozo 阅读(3076) 评论(11) 推荐(5) 编辑
摘要:页面动画就是页面的切换的动画过度效果。平时使用Wp手机的系统程序都是像翻页一样的过度效果,我下面就准备完成简单的添加这样的效果。使用Windows Phone Toolkit其实这个动画效果不需要自己实现,Windows Phone Toolkit 已经封装好了现成库,我们只需要调用就可以了。这里可以下载:http://silverlight.codeplex.com/安装后可以在C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Toolkit 找到[32位系统去掉(x86)],引用到项目中就可以了,里面还有不少增强控件也非常实用 阅读全文
posted @ 2012-01-26 22:02 kiminozo 阅读(2019) 评论(7) 推荐(1) 编辑
摘要:不知不觉写了很多东西,不过结构有点乱了,写完了需要整理一下。回顾一下界面设计,这草图又要出来献丑了。除了已经实现的圆形触控控件以外,其他按钮都是圆环+图片的方式,有比较有写一个自定义控件,取个名字叫RoundButton。RoundButton类RoundButton具有和Button相同的行为和视觉状态,唯一区别是RoundButton拥有图标那么继承Button并添加依赖属性ImageSource类型为ImageSource。再添加一个ImageBrush用于绘制图片。代码如下: public class RoundButton : Button { protec... 阅读全文
posted @ 2012-01-26 14:12 kiminozo 阅读(1554) 评论(5) 推荐(1) 编辑
摘要:导航概述Windows Phone 应用程序基于 Silverlight 页面模型,用户可以在其中浏览不同屏幕的内容。具体的可以查阅:http://msdn.microsoft.com/zh-cn/library/ff941091(v=vs.92).aspx通过NavigationService类可以轻松的实现导航:常用的方法是NavigationService.Navigate(new Uri("/ConfigView.xaml", UriKind.Relative));导航到ConfigView.xaml还可以在app里面设置UriMapper注册页面的别名 var m 阅读全文
posted @ 2012-01-26 13:34 kiminozo 阅读(739) 评论(0) 推荐(0) 编辑
摘要:可以使用 Windows Phone SDK 快速轻松地向应用程序中添加应用程序栏。应用程序栏是沿着手机屏幕底部的一行图标按钮,它们为用户提供对应用程序最常见任务的快速访问。呈现模式有:1.最简Minimized 就仅仅在下面显示...2 普通:3 展开:4 展开+菜单:遥控器界面的应用程序栏首先是遥控器的应用程序栏,因为平时需要操作我用最简方式呈现,为了统一将背景色变成透明这样只能点右边的...才能展开。展开后显示“设置”、“帮助”两个菜单,将背景色设置成黑色。通过监听ApplicationBar的StateChanged事件可以实现,代码如下:private void OnAppBarSt 阅读全文
posted @ 2012-01-26 12:51 kiminozo 阅读(834) 评论(0) 推荐(0) 编辑
摘要:因为需要在手机上配置IP,我需要一个界面输入IP地址,虽然直接使用TextBox,但是这样不太友好,我希望能够有和Windows网络设置上一样的IP输入框。所以决定写一个自定义控件。设计控件外观4个TextBox和3个显示“.”的TextBlock就可以了,结构很简单:XAML代码如下:<StackPanel Orientation="Horizontal" Height="72" > <TextBox x:Name="TextOctet1"/> <TextBlock Text="." 阅读全文
posted @ 2012-01-26 12:08 kiminozo 阅读(1481) 评论(0) 推荐(0) 编辑
摘要:配置既然选择了TCP协议,那么从WP7手机连接到TCP服务器,必须要知道服务器的IP和端口。为了方便服务器端口使用固定的8012端口。那么WP7至少需要在手机上存储IP地址字符串。Windows Phone 本地数据存储Windows Phone 应用程序可以使用独立存储将数据储存到手机本地。应用程序可以通过三种方式储存数据:设置:使用 IsolatedStorageSettings 类将数据存储为键/值对。文件和文件夹:使用 IsolatedStorageFile 类存储文件和文件夹。本地数据库:7.1新增,只能支持LINQ TO SQL ,不能写SQL语句。本地存储IP数据因为我只需要存储 阅读全文
posted @ 2012-01-26 11:18 kiminozo 阅读(907) 评论(0) 推荐(0) 编辑
摘要:TCP服务器服务器类图这里模仿了WebFrom的IHttpHandler,我设计了一个ITcpHandler提供给ServiceListener让外部解析。实现类是KeyMethodHandler。报文TcpContext包含了TcpRequest和TcpResponse,TcpRequest和消息报文结构相同,增加了从Socket获取的TcpEndpoint,TcpResponse仅仅只是回调状态和消息(暂时没有使用)。ServiceListener、BufferManager、SocketAsyncEventArgsPool和MDSN上标准的例子接近,原则上都是为了重用Buffer和Soc 阅读全文
posted @ 2012-01-25 16:12 kiminozo 阅读(1236) 评论(2) 推荐(0) 编辑
摘要:WP7支持的通信方式1. HTTP协议主要是由WebClient或HttpWebRequest两个类提供,直接封装HTTP协议访问Web站点。最常用的通信方式。2. WCFWCF作为MS大力推广的通信方案非常强大,但是到了WP7上就变成了太监,只支持简单的BasicHttpBinding而且还有非常多的限制。3 Socket7.1SDK里新增的通信方式,支持TCP和UDP但只能使用异步的SocketAsyncEventArgs事件方式,也有不少限制。选择通信方式因为同时需要考虑到服务器端的实现,在服务器端尽量精简,最好不要有什么IIS之类大型依赖。对应是服务器端实现方式如下:HTTP协议Htt 阅读全文
posted @ 2012-01-25 15:21 kiminozo 阅读(1588) 评论(1) 推荐(0) 编辑
摘要:控件功能分析圆形控件 能识别顺时针、逆时针滑动的手势,并能识别滑动速度。系统提供的相关事件OnManipulationStarted滑动开始手按下OnManipulationDelta滑动中手按住并移动OnManipulationCompleted滑动完成手放开这3个事件是实现滑动的必要事件,因为EventArgs提供了手的XY坐标已经移动速度,不过遗憾要识别顺时针需要自己实现。识别顺时针滑动识别了顺时针,反之就能识别逆时针,但如何识别顺时针滑动呢,其实这个问题困扰了我不少时间,首先看看默认的坐标轴结构图:用红色刷子表示手势,貌似没有找到突破口,光从X和Y的变化没有什么参考的地方。必须要换一下 阅读全文
posted @ 2012-01-25 14:38 kiminozo 阅读(1936) 评论(1) 推荐(2) 编辑
摘要:界面设计回顾一下按钮清单:播放控制播放/暂停Space停止F4快进Right快退Left快进X2Control+Right快退X2Control+Left快进X3Alt+Right快退X3Alt+Left音量放大Up缩小Down静音M节目下一个PageDown上一个PageUp基本上就是把这些按钮布置到480*800的屏幕上。快进按钮设计不过有个地方有点不舒服,就是快进、快退居然有3套,而且功能相似只是速度不同,如果像这样摆放6个按钮一定很不爽。之前再说点题外话,就是为什么没有用拖动进度条的方式。因为实现起来比较麻烦,需要API或者Windows消息。加上现在播放器大部分有断点续播,我不能设计 阅读全文
posted @ 2012-01-25 13:55 kiminozo 阅读(1676) 评论(0) 推荐(0) 编辑
摘要:思考既然决定了开发一款手机遥控器,那么首先确定开发的功能和实现方式。实现方式暂定以在PC端模拟键盘的方式触发快捷键。功能需求首先是遥控器上的按钮。首先是我用的播放器是PotPlayer64,常用的就是快进、后退、播放/暂停、下一文件、音量等。参考了自己的电视遥控器,感觉换台什么的为主,在这里实用性不强,我也不需要换台。然后是DVD遥控器,播放操作基本还是可以,不过上下左右之类的貌似也没有什么用。总结了一下,还是简单的设计,不常用的这个版本先不实现。下面是按钮清单和对应的播放器快捷键:播放控制播放/暂停Space停止F4快进Right快退Left快进X2Control+Right快退X2Cont 阅读全文
posted @ 2012-01-25 13:14 kiminozo 阅读(1369) 评论(0) 推荐(0) 编辑
摘要:前言几个月前买了一部三星的Omnia7,对WP7的系统特别有好感,加上本身就是.net个程序员,想着以后也可以自己开发点小程序。1月初公司里某项目正在搞令人恶心的CMMI3标准,我天天都在开会或者写概要设计和详细设计的文档,没怎么碰代码感觉手生,决定回家学习WP7开发。学习的过程学习的过程嘛,现在WP7的学习资源真的很少,买了一本《Windows Phone 7 高级编程》,其实我一直不怎么喜欢红皮书,感觉都是点到位置,只教方法不教原理,这本也让我很失望,不过拿来入门还是将就一下,至少能从中学习到WP7的一些大概情况。其次嘛,MSDN还是最好的在线学习的地方,Windows Phone 开发已 阅读全文
posted @ 2012-01-25 12:32 kiminozo 阅读(1479) 评论(3) 推荐(0) 编辑

点击右上角即可分享
微信分享提示