随笔分类 - WP7开发
摘要:不知不觉写了很多东西,不过结构有点乱了,写完了需要整理一下。回顾一下界面设计,这草图又要出来献丑了。除了已经实现的圆形触控控件以外,其他按钮都是圆环+图片的方式,有比较有写一个自定义控件,取个名字叫RoundButton。RoundButton类RoundButton具有和Button相同的行为和视觉状态,唯一区别是RoundButton拥有图标那么继承Button并添加依赖属性ImageSource类型为ImageSource。再添加一个ImageBrush用于绘制图片。代码如下: public class RoundButton : Button { protec...
阅读全文
摘要:导航概述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
阅读全文
摘要:可以使用 Windows Phone SDK 快速轻松地向应用程序中添加应用程序栏。应用程序栏是沿着手机屏幕底部的一行图标按钮,它们为用户提供对应用程序最常见任务的快速访问。呈现模式有:1.最简Minimized 就仅仅在下面显示...2 普通:3 展开:4 展开+菜单:遥控器界面的应用程序栏首先是遥控器的应用程序栏,因为平时需要操作我用最简方式呈现,为了统一将背景色变成透明这样只能点右边的...才能展开。展开后显示“设置”、“帮助”两个菜单,将背景色设置成黑色。通过监听ApplicationBar的StateChanged事件可以实现,代码如下:private void OnAppBarSt
阅读全文
摘要:因为需要在手机上配置IP,我需要一个界面输入IP地址,虽然直接使用TextBox,但是这样不太友好,我希望能够有和Windows网络设置上一样的IP输入框。所以决定写一个自定义控件。设计控件外观4个TextBox和3个显示“.”的TextBlock就可以了,结构很简单:XAML代码如下:<StackPanel Orientation="Horizontal" Height="72" > <TextBox x:Name="TextOctet1"/> <TextBlock Text="."
阅读全文
摘要:配置既然选择了TCP协议,那么从WP7手机连接到TCP服务器,必须要知道服务器的IP和端口。为了方便服务器端口使用固定的8012端口。那么WP7至少需要在手机上存储IP地址字符串。Windows Phone 本地数据存储Windows Phone 应用程序可以使用独立存储将数据储存到手机本地。应用程序可以通过三种方式储存数据:设置:使用 IsolatedStorageSettings 类将数据存储为键/值对。文件和文件夹:使用 IsolatedStorageFile 类存储文件和文件夹。本地数据库:7.1新增,只能支持LINQ TO SQL ,不能写SQL语句。本地存储IP数据因为我只需要存储
阅读全文
摘要:TCP服务器服务器类图这里模仿了WebFrom的IHttpHandler,我设计了一个ITcpHandler提供给ServiceListener让外部解析。实现类是KeyMethodHandler。报文TcpContext包含了TcpRequest和TcpResponse,TcpRequest和消息报文结构相同,增加了从Socket获取的TcpEndpoint,TcpResponse仅仅只是回调状态和消息(暂时没有使用)。ServiceListener、BufferManager、SocketAsyncEventArgsPool和MDSN上标准的例子接近,原则上都是为了重用Buffer和Soc
阅读全文
摘要:WP7支持的通信方式1. HTTP协议主要是由WebClient或HttpWebRequest两个类提供,直接封装HTTP协议访问Web站点。最常用的通信方式。2. WCFWCF作为MS大力推广的通信方案非常强大,但是到了WP7上就变成了太监,只支持简单的BasicHttpBinding而且还有非常多的限制。3 Socket7.1SDK里新增的通信方式,支持TCP和UDP但只能使用异步的SocketAsyncEventArgs事件方式,也有不少限制。选择通信方式因为同时需要考虑到服务器端的实现,在服务器端尽量精简,最好不要有什么IIS之类大型依赖。对应是服务器端实现方式如下:HTTP协议Htt
阅读全文
摘要:控件功能分析圆形控件 能识别顺时针、逆时针滑动的手势,并能识别滑动速度。系统提供的相关事件OnManipulationStarted滑动开始手按下OnManipulationDelta滑动中手按住并移动OnManipulationCompleted滑动完成手放开这3个事件是实现滑动的必要事件,因为EventArgs提供了手的XY坐标已经移动速度,不过遗憾要识别顺时针需要自己实现。识别顺时针滑动识别了顺时针,反之就能识别逆时针,但如何识别顺时针滑动呢,其实这个问题困扰了我不少时间,首先看看默认的坐标轴结构图:用红色刷子表示手势,貌似没有找到突破口,光从X和Y的变化没有什么参考的地方。必须要换一下
阅读全文
摘要:界面设计回顾一下按钮清单:播放控制播放/暂停Space停止F4快进Right快退Left快进X2Control+Right快退X2Control+Left快进X3Alt+Right快退X3Alt+Left音量放大Up缩小Down静音M节目下一个PageDown上一个PageUp基本上就是把这些按钮布置到480*800的屏幕上。快进按钮设计不过有个地方有点不舒服,就是快进、快退居然有3套,而且功能相似只是速度不同,如果像这样摆放6个按钮一定很不爽。之前再说点题外话,就是为什么没有用拖动进度条的方式。因为实现起来比较麻烦,需要API或者Windows消息。加上现在播放器大部分有断点续播,我不能设计
阅读全文
摘要:思考既然决定了开发一款手机遥控器,那么首先确定开发的功能和实现方式。实现方式暂定以在PC端模拟键盘的方式触发快捷键。功能需求首先是遥控器上的按钮。首先是我用的播放器是PotPlayer64,常用的就是快进、后退、播放/暂停、下一文件、音量等。参考了自己的电视遥控器,感觉换台什么的为主,在这里实用性不强,我也不需要换台。然后是DVD遥控器,播放操作基本还是可以,不过上下左右之类的貌似也没有什么用。总结了一下,还是简单的设计,不常用的这个版本先不实现。下面是按钮清单和对应的播放器快捷键:播放控制播放/暂停Space停止F4快进Right快退Left快进X2Control+Right快退X2Cont
阅读全文
摘要:前言几个月前买了一部三星的Omnia7,对WP7的系统特别有好感,加上本身就是.net个程序员,想着以后也可以自己开发点小程序。1月初公司里某项目正在搞令人恶心的CMMI3标准,我天天都在开会或者写概要设计和详细设计的文档,没怎么碰代码感觉手生,决定回家学习WP7开发。学习的过程学习的过程嘛,现在WP7的学习资源真的很少,买了一本《Windows Phone 7 高级编程》,其实我一直不怎么喜欢红皮书,感觉都是点到位置,只教方法不教原理,这本也让我很失望,不过拿来入门还是将就一下,至少能从中学习到WP7的一些大概情况。其次嘛,MSDN还是最好的在线学习的地方,Windows Phone 开发已
阅读全文