posted @ 2012-05-30 14:26 fwind 阅读(2) 评论(0) 编辑
2012年5月30日
2012年5月10日
独立存储IsolatedStorageSettings中可以按照键/值方式保存数据,如果数据是对象是,需要将对象序列化,否则将在执行save()方法(这个方法可以不用手工调用,程序在退出时自动调用)时异常。
序列化的方法:类必须加上[DataContract]特性,类里的属性必须加上[DataMember]特性。使用这两个特性需要添加引用System.Runtime.Serialization。这一点和传统C#的方式不同!
1 [DataContract] 2 public class GameCell : INotifyPropertyChanged 3 { 4 private int _x; 5 6 /// <summary> 7 /// 行坐标 8 /// </summary> 9 [DataMember] 10 public int X 11 { 12 get 13 { 14 return _x; 15 } 16 set 17 { 18 if (_x != value) 19 { 20 _x = value; 21 } 22 } 23 } 24 25 private int _y; 26 27 /// <summary> 28 /// 列坐标 29 /// </summary> 30 [DataMember] 31 public int Y 32 { 33 get 34 { 35 return _y; 36 } 37 set 38 { 39 if (_y != value) 40 { 41 _y = value; 42 } 43 } 44 } 45 }
参考文章:http://www.cnblogs.com/huizhang212/archive/2012/03/06/IsolatedStorageSettings.html
posted @ 2012-05-10 15:32 fwind 阅读(11) 评论(0) 编辑
在Windows Phone 7的模拟器中运行应用程序时,默认会在右侧显示帧速率计数器的内容,这是用来监控应用程序的性能。如下图:

很多时候,这个帧速率是不需要的,但在模拟器里面无法配置,在程序代码里可以禁用或者启用。
文件 App.xaml.cs. 中找到该代码:
Application.Current.Host.Settings.EnableFrameRateCounter = true
将值赋为false,或者将整句话注销掉即可。
1 // Show graphics profiling information while debugging. 2 if (System.Diagnostics.Debugger.IsAttached) 3 { 4 // Display the current frame rate counters. 5 Application.Current.Host.Settings.EnableFrameRateCounter = false; 6 7 // Other code… 8 }
msdn地址:http://msdn.microsoft.com/zh-cn/library/gg588380(v=vs.92)
posted @ 2012-05-10 14:09 fwind 阅读(6) 评论(0) 编辑
2012年4月16日
之所以叫做状态存储(State storage)是因为它是用来保存应用程序的状态
可以在休眠或者墓碑化应用程序时在内存中用名称/值对的方式存储数据
它提供了非常快速的数据访问,
访问地点:App.xaml.cs中;
使用情况:用于在墓碑化时保存程序状态
常用的访问方法:PhoneApplicationService.Current.State["keyname"],PhoneApplicationService.Current.State.TryGetValue("keyname",out value);
说明:(1)状态存储保存在手机系统预留的内存中,主要用于休眠或者墓碑化时保存程序状态;
(2)由于数据保存在手机内存中,所以存取速度很快,但当手机关机后,这部分数据将会被抛弃掉。
posted @ 2012-04-16 11:50 fwind 阅读(4) 评论(0) 编辑
2012年4月13日
在C#中,十进制和十六进制转换非常简单,方法如下:
十进制转为十六进制:
1 int a = 100; 2 String strA = a.ToString("x8");
十六进制转为十进制:
1 int b= Int32.Parse("266", System.Globalization.NumberStyles.HexNumber);
也可以使用下述方法:
1 /// <summary> 2 /// 十六进制换算为十进制 3 /// </summary> 4 /// <param name="strColorValue"></param> 5 /// <returns></returns> 6 public static int GetHexadecimalValue(String strColorValue) 7 { 8 char[] nums = strColorValue.ToCharArray(); 9 int total = 0; 10 try 11 { 12 for (int i = 0; i < nums.Length; i++) 13 { 14 String strNum = nums[i].ToString().ToUpper(); 15 switch (strNum) 16 { 17 case "A": 18 strNum = "10"; 19 break; 20 case "B": 21 strNum = "11"; 22 break; 23 case "C": 24 strNum = "12"; 25 break; 26 case "D": 27 strNum = "13"; 28 break; 29 case "E": 30 strNum = "14"; 31 break; 32 case "F": 33 strNum = "15"; 34 break; 35 default: 36 break; 37 } 38 double power = Math.Pow(16, Convert.ToDouble(nums.Length - i - 1)); 39 total += Convert.ToInt32(strNum) * Convert.ToInt32(power); 40 } 41 42 } 43 catch (System.Exception ex) 44 { 45 String strErorr = ex.ToString(); 46 return 0; 47 } 48 49 50 return total; 51 }
posted @ 2012-04-13 10:40 fwind 阅读(13) 评论(0) 编辑
2012年4月9日
摘要: wp7的类包中并没有MD5加密算法,所以只能自己写,这是从网上找到的一段老外的代码,已经测过,可以使用的。使用方法很简单:1 String strMD5Code = MD5.GetMd5String("abcdefg");1 byte[] byteMD5Code = MD5.GetMd5ByteArray("abcdef");MD5算法内容如下: public class MD5CryptoServiceProvider : MD5 { public MD5CryptoServiceProvider() : base() { } } ...阅读全文
posted @ 2012-04-09 17:19 fwind 阅读(48) 评论(0) 编辑
2012年3月28日
摘要: wp7可以使用SqlCE作本地数据库,那么如何建立数据库索引呢。当建立一个表,指定主键后,数据库会默认设置为索引,那么如何手动设置一个列为索引呢?查询MSDN后,发现,在表类定义前面加上[Index]来制定某一列,但必须在代码文件顶部添加以下两条引用语句:using Microsoft.Phone.Data.Linq;using Microsoft.Phone.Data.Linq.Mapping;常见 LINQ to SQL 映射属性:属性示例说明TableAttribute[Table]将某个类指定为与数据库表关联的实体类。ColumnAttribute[Column(IsPrimaryKe阅读全文
posted @ 2012-03-28 17:18 fwind 阅读(41) 评论(0) 编辑
2012年3月27日
摘要: 从网上查到了目前Windows Phone 7系统默认提供了10种色彩主题 Accent ,下图是默认主题颜色的RGB、十六进制的色值查询。Accent ColorRGBHexExampleblue27,161,226#FF1BA1E2brown160,80,0#FFA05000green51,153,51#FF339933lime162,193,57#FFA2C139magenta216,0,115#FFD80073mango (orange)240,150,9#FFF09609pink230,113,184#FFE671B8purple162,0,255#FFA200FFred229,20阅读全文
posted @ 2012-03-27 17:19 fwind 阅读(41) 评论(0) 编辑
2012年3月16日
摘要: 安装完windows phone7的英文SDK之后,发现之前安装的Visual Studio2010旗舰中文版无法新建WP7项目,但是却可以顺利打开WP7的项目,而且在Blend和VS Express中可以正常新建WP7的项目。可能VS中文版不支持吧。后来查了下,博客园里有人提出过,可以采用以下方式解决:1. 找到windows phone7的项目模板(因为可以用Express版新建,因此肯定存在)。位置为:X:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight 阅读全文
posted @ 2012-03-16 14:26 fwind 阅读(10) 评论(0) 编辑
2012年3月12日
摘要: 在Windows Phone 7程序的开发中,并没有针对程序退出的方法,只能使用手机上的后退按钮。那如果希望在页面点击后退按钮退出时,弹出个对话框给用户确认,可以这样实现:1 public MainPage()2 {3 InitializeComponent();4 5 this.BackKeyPress += new EventHandler<System.ComponentModel.CancelEventArgs>(MainPage_BackKeyPress);6 }定义退出按钮的处理函数:1...阅读全文
posted @ 2012-03-12 17:07 fwind 阅读(74) 评论(0) 编辑
摘要: 在开发WP7中,在处理TextBox控件的TextChanged事件响应时发现,每次TextBox内容变化后,总会触发2次事件,很郁闷。后来查询一些资料,有人说是微软的bug,是TextBox默认模板的问题,可以通过自定义模板解决。自己用Blend尝试了下,发现确实是在默认模板里又嵌套了一个TextBox,原因不知,将其注释掉,问题解决。嵌套的TextBox如代码中86行注释掉的部分。不知道微软这样的设计是出于什么目的。 1 <!--自定义TextBox样式--> 2 <Style x:Key="TextBoxStyle1" TargetType=&quo阅读全文
posted @ 2012-03-12 11:41 fwind 阅读(43) 评论(0) 编辑
2012年3月8日
摘要: 第一次向APP Hub提交应用,第一步上传XAP包时就报错:后来查了下,发现是项目没有设置语言属性,右键解决方案-属性,在“Application”中进入“Assembly Information”,选择“Neutral Language”为“中文”。需要注意,千万不可选成“中文(简体)”,否则上传项目还会报错,而且错误内容成了未知。如下图:设置后,再提交,成功通过第一步。阅读全文
posted @ 2012-03-08 17:40 fwind 阅读(38) 评论(0) 编辑
摘要: 可以在VS2010工具栏中“调试”-“Start Windows Phone Performance Analysis”开启对系统的性能分析。Performance Analysis 工具允许您度量和分析应用程序的各个方面的性能。该工具允许您在单个分析会话中评估您应用程序的执行相关或内存使用方面的情况。每次您运行 Performance Analysis 工具时都会创建一个文件(.sap),其中包含了该会话中的性能信息。选定文件内容后,相关内容会显示在 Visual Studio 中,并且会在一系列性能图形和表(包含其他信息)中显示结果。由于 Windows Phone 应用程序必须满足某些性阅读全文
posted @ 2012-03-08 10:39 fwind 阅读(49) 评论(0) 编辑
2012年3月1日
2012年1月9日
2011年11月30日
摘要: 上传文件用WebClient类和HttpWebRequest类都可以,但用WebClient无法获取服务器端的返回内容,至少我没发现有什么方法,哪位要是知道别忘了告诉下,谢谢HttpWebRequest类代码: 1 /// <summary> 2 /// 发送内容 3 /// </summary> 4 private byte[] bSendingFile = null; 5 6 7 8 using (IsolatedStorageFileStream sendingZipStream2 = new IsolatedStorageFileStream(strZipFol阅读全文
posted @ 2011-11-30 16:37 fwind 阅读(299) 评论(0) 编辑
2011年11月28日
摘要: 当中wp7手机上测试应用了照片选择器和拍照选择器时,无法联机调试。原因是默认打开的Zune程序会锁定图片查看和摄像头。所以如果想调试这些功能,要在Zune认出手机连接成功后,关闭Zune,代开SDK中带的小工具:WPConnect,路径:Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\WPConnect直接执行就可以了,提示连接成功后(如下图),即可进行调试。官方说明:http://msdn.microsoft.com/en-us/library/gg180729(v=vs.92).aspx阅读全文
posted @ 2011-11-28 10:46 fwind 阅读(218) 评论(0) 编辑
2011年11月16日
摘要: 正开发的应用程序需要在一个Phone7手机上安装多个相同的项目,就涉及到这WP7手机中是如何标识应用程序这个问题了。其实,WP7项目是通过组WMAppManifest.xml文件中的ProductID来区分不同应用程序的,只用在项目中打开 Properties/WMAppManifest.xml文件,修改ProductID的值就行。如:“ProductID="{6fc3da28-6f9d-419e-9b95-528841eb063f}"修改为“ProductID="{6fc3da28-6f9d-419e-9b95-528841eb064f}"然后再重新生阅读全文
posted @ 2011-11-16 16:46 fwind 阅读(36) 评论(0) 编辑
2011年11月14日
摘要: 在WP7项目,图片资源文件的属性对话框Properties,在Build Action项有很多选项,但WP7中只支持:Content、Resource、none这三种。设置为Content时会直接将图片文件打包到XAP文件中,就是说用ZIP查看器可以直接看到你的图片文件;设置为Resource后,图片会编译到XAP的Dll文件内;设置为none后,图片既不会直接打包在xap文件中,也不会嵌入xap中的dll内,编译过程会完全忽略该文件。一般情况下,用Content更简单,能获得更好的效率。MSDN的原文:Set Build Action to Content for MediaMedia pr阅读全文
posted @ 2011-11-14 11:27 fwind 阅读(103) 评论(0) 编辑
2011年11月5日
摘要: 在Silverlight 4和WP7的程序中需要使用XNA接口实现在后台播放铃音,不再依赖某个xaml页面。首先在项目中添加Microsoft.Xna.Framework.dll的引用。在添加完引用后,接下来在代码文件上方使用using添加下面两个命名空间:using Microsoft.Xna.Framework.Audio;using Microsoft.Xna.Framework;该类只支持WAV文件,所以只能用WAV格式的音乐,这点非常不方便,可WP7自带的声音都是wma的,目前我还没搞清楚其内部是怎么实现。将WAV音频文件添加到项目。然后就可以通过代码实现声音的播放了,代码如下:pu阅读全文
posted @ 2011-11-05 15:23 fwind 阅读(87) 评论(0) 编辑

