随笔分类 - Windows Phone学习
摘要:WP中系统没有像WPF中直接支持MultiBinding,可以通过以下代码实现五个类 public class BindingCollection : Collection { // Fields private readonly BindingCollectionChangedCallback _collectionChangedCallback; // Methods //internal BindingCollection(BindingCollectionChangedCallback callback) ...
阅读全文
摘要:1、测量和安排布局:MeasureOverride, ArrangeOverride //测量(传入控件的可用大小) protected override Size MeasureOverride(Size availableSize) { //遍历所有子空间 foreach (UIElement child in InternalChildren) { //计算控件可用大小,调用子控件的MeasureOverride方法 child.Measure(availableSize); ...
阅读全文
摘要:在WP8中,控件WebBrowser没有提供对滚动条的支持,而在内置的IE中,却可以显示出滚动条(微软这是在坑我们吗),但如果在客户端使用Webbrowser的话,自己构造ScrollBar来显示 通过javascript监听onscroll事件,然后传递给Webbrowser,通过onscroll的位置来确定自定义的ScrollBar的位置下面演示方法:1、在Html代码中添加javascript代码function initialize() { window.external.notify("scrollHeight=" + document.body.scrollHe
阅读全文
摘要:在WP8中支持启动第三方应用程序,比如在App1中可以打开App2,你可以在你的应用程序中直接打开QQ,也可以让其他开发者调用你的APP,例如:软件盒子下面演示被调用方和调用方的使用方法,新建两个项目(GetApp 和 GiveApp)1、注册 URI 关联(GiveApp)在应用清单文件 WMAppManifest.xml 中指定相应的 URI 方案名。您的 URI 方案名可以是字母和数字的任意组合,但不能和系统内置的保留名冲突,这里注册为 ms-myapp1 系统保留的Uri关联名称:http://msdn.microsoft.com/zh-cn/library/windowsphone.
阅读全文
摘要:在WP7中没有相关的API可以直接使用摄像头的LED等,只能通过录像时打开LED等来使用,在WP8中添加了相关的调用接口,可以方便的使用LED灯,并且支持后台,废话不多说,直接上代码1、在 WMAppManifest.xml 文件中添加对ID_CAP_ISV_CAMERA和ID_CAP_MICROPHONE功能的引用 2、通过 AudioVideoCaptureDevice 类来操作摄像头的LED开关private AudioVideoCaptureDevice avDevice = null;try{ if (avDevice == null) { /...
阅读全文
摘要:用了几天Sqlite数据库写WP7项目,在这里做下笔记 http://wp7sqlite.codeplex.com/之前看到还有一个封装(http://sqlitewindowsphone.codeplex.com/)但感觉用上面这个比较好下载项目,可以得到两个库文件 Community.Csh...
阅读全文
摘要:WP7中的使用轻量级的TextBlock控件来显示文本,但是TextBlock显示过长的文本时,会发生截断,过长的部分不显示如果过长的字符串,可以分解为多个TextBlock来显示,在MSDN上也有相关的实现,但是这个效率很低,而且也不是适合所有的情况,有时还是会出现文本截断问题 http://blogs.msdn.com/b/priozersk/archive/2010/09/08/creating-scrollable-textblock-for-wp7.aspx我用下面算法来分解字符串,然后生成多个TextBlock放在StackPanel,最后在放在ScrollViewer中 思路..
阅读全文
摘要:SQLite是一个轻量级的数据库,广泛应用于嵌入式和移动应用的开发上,最近在做本地数据库的项目,记录一下SQLite的学习笔记首先SQLite 是一个开源的数据库,也有很多可视化的管理软件,大多数都是免费的,Sqlite Admin,SqliteMan,Sqlite Studio,还有一个Sqlite dotnet项目,支持在VS2010操作Sqlite数据库(与SQL server的操作类似),下面演示这种方法用数据库管理软件生成好数据库,导入到WindowsPhone中使用1、下载Sqlite dotnet: http://sourceforge.net/projects/sqlite-d
阅读全文
摘要:由于微软审核的一些限制,部分功能在商店审核不通过,所以在这里发布,越狱后的用户可以用一键开关4.0更新 (2013/04/28)添加日期大磁贴显示,支持显示时间(由于系统磁贴更新不确定性,有时更新不够及时,点击日期也可更新) 重写快速音乐页面和算法,优化用户体验 重写代码结构,优化代码,修复部分Bug 新增【下一曲】音乐Toast提示 (下一版本恢复网络状态更新和显示)3.6更新(2013/04/19)添加农历显示,恢复自动更新日期磁贴3.5更新 添加批量更新磁铁颜色,增加越狱版本(添加亮度,定位,账户,重启,主题,最近通话等快捷开关)可以上我的博客下载 3.4更新 添加号码转发,添...
阅读全文
摘要:微软之前表示,对于所有WP7设备都可以升级到7.8,不过对于7.8,新加的东西实在太少了,只加入了类似WP8的界面,其他几乎没有变化,下面说说关于WP7.8中磁贴的使用WP7的磁贴是属性实在太有限,只能设置Title,和Background和Count,而且大小不能改变在WP8中有三种磁贴可以使用,循环图块,图标图块,翻转图块,关于这三种图块MSDN上说的很详细,这里不多介绍,地址如下 http://msdn.microsoft.com/zh-CN/library/windowsphone/develop/hh202948(v=vs.105).aspx http://www.deve...
阅读全文
摘要:在Windows Phone中提供了对联系人和约会数据的访问,相关的类在Microsoft.Phone.UserData 命名空间,不过wp7不支持没有提供添加约会的接口,只能读取,添加联系人可以通过SavePhoneNumberTask 添加,但不能批量添加,下面演示调用联系人和约会数据1、添加命名空间 using Microsoft.Phone.UserData; 2、异步获取联系人数据 //联系人信息 Contacts contacts = new Contacts(); contacts.SearchCompleted += conta...
阅读全文
摘要:windows phone提供了一个 WriteableBitmap 类,该类有一个SaveJpeg方法,可以把控件保存为jpg图片,但是jpeg不支持透明颜色,我们可以利用CodePlex上的ImageTools这个类来创建png格式的图片http://imagetools.codeplex.com下载得到 ImageTools.dll ImageTools.IO.Png.dll ImageTools.Utils.dll把三个库引用到项目中1、创建png图片,保存到隔离存储空间 private string CreateBackground() { ...
阅读全文
摘要:windows phone自带的字体又少又难看,我们可以自己引入一些字体让程序变得好看些首先引入字体资源(新蒂小丸子体.ttf),然后设置 生成操作为 Content添加一个TextBlock控件 <TextBlock FontFamily="/Font/新蒂小丸子体.ttf#Senty小丸子" HorizontalAlignment="Left" Margin="68,131,0,0" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment=
阅读全文
摘要:在开发过程中,有时候需要自己定义拨号键盘,比如拨号软件,一般还要给键盘添加一些手势操作,比如向上滑动,键盘就上拉显示出来,向下滑动,键盘就向下拉下面演示一下如何做1、首先定义一个Grid来存放整个T9拨号键盘,为了让该控件支持手势功能,需要引用Microsoft.Phone.Controls.Toolkit 添加命名空间的引用 xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit" 添加两个页面资源 <phone:Phon...
阅读全文
摘要:之前看到一些应用的一些控件在点击的时候,会有倾斜效果,手指移动到不同的地方时,倾斜角度也随之变化,感觉效果很酷下面说一下大概用法,特效类来自微软官方的一些实例文件该特效能应用于 ButtonBase 和 ListBoxItem 控件1、首先添加定义特效的文件到项目中 TiltEffect.cs (文件在附件可以下载) 修改该文件中的命名空间,改为项目的命名空间2、接着,在页面文件中添加类的声明 xmlns:local="clr-namespace:命名空间" local:TiltEffect.IsTiltEnabled="True" 这样效果就应用好了,
阅读全文
摘要:在做开发的时候,经常需要加载数据,当数据量很大的时候,一次性加载可能会造成卡机的现象,这是我们可以通过BackgroundWorker在后台执行,并把需要更新的数据更新到UI,这样就不会因为数据过多,加载时间太久而至于卡死下面说说用法BackgroundWorker类有几个重要的方法和事件 事件: DoWork 当调用RunWorkerAsync时执行,处理后台任务 ProgressChanged 用于更新进度和UI RunWorkerCompleted 后台任务完成时执行 属性: WorkerSupportsCancellation 是否支持异步取消 ...
阅读全文
摘要:在WP7中,经常需要使用到保存数据,对对象的保存可以通过序列化到流,然后保存到文件中常用的有三种序列化方式:xml,Json,DataContract下面介绍着三种序列化的使用 首先,定义一个序列化类Person public class Person { public string Name { get; set; } public int Age { get; set; } }1、使用XmlSerializer序列化 需要引用System.Xml.Serialization 库 Pe...
阅读全文
摘要:在windows phone应用上挂广告应该是最方便的赚钱方法,首先要找到广告供应商,常用的有以下几个 Microsoft Advertising 微软自家的,但好像收款很麻烦,没搞过 AdDuplex 这个平台可以进行互推广,你帮别人推广的同时,别人也可以帮你推广 AdMod Google旗下的广告供应商,感觉不是很好用,有时会崩溃,支持Paypal Smaato 支持Paypal SmartMad 亿动智道,国内的本文介绍一下Smaato广告的使用1、注册和设置 首先,当然是注册啦,网站是http://www.smaa...
阅读全文
摘要:WP7提供了InkPresenter控件用于绘图,使用InkPresenter控件绘图很简单1、首先新建一个InkPresenter控件,然后调用CaptureMouse()方法对鼠标进行捕获(这样才能知道绘图时鼠标具体的坐标) inkPresenter1.CaptureMouse();2、添加一个全局变量,用于收集鼠标的坐标集合 Stroke newStroke;3、添加三个事件 MouseLeftButtonDown MouseMove LostMouseCapture private void inkPresenter1_MouseLeftButtonDown(ob...
阅读全文
摘要:通常情况下,WP7不支持第三方应用程序后台运行,如何让应用程序可以在后台进行实时的更新数据呢,例如新浪微博可以再后台获取新消息,然后显示条目在【开始】界面的磁贴上这种可以通过创建计划任务代理来实现后台程序功能先放效果这里绿色的磁铁为后台自动更新的,这样可以实现每天更新一次日期1、首先,在工程中添加一个项目 Windows Phone 计划任务代理,命名为MyScheduledTaskAgent 重写ScheduledAgent 类的OnInvoke() 方法,把需要后台运行的代码放在这个函数里(这里可以处理不同的任务,每个任务执行时都会调用这个函数,这里通过判断任务的名字调用不同的代码) ..
阅读全文

浙公网安备 33010602011771号