随笔分类 - Windows Phone 攻略
开发令人激动的 Windows Phone
    
摘要:在 VS2013 中调试 winddows phone 或者 win rt 程序的时候,需要手动触发 “挂起” 事件。如果找不到这个按钮:1、打开菜单栏中的 “自定义” 对话框:2、选择调试位置就弹出来了:
        阅读全文
                
摘要:前段时间,用业余时间写了一款 wp8 app(“超级滤镜”商店,中文地址;英文地址),在多语言的时候,给 app title和 app tile title 进行多语言时(参考 MSDN),中文商店(zh-cn)总是显示 “Super Imaging” 而不是 “超级滤镜”,但是在手机上切换多语言时...
        阅读全文
                
摘要:在 windows phone store app 中,判断和设置页面横竖屏的方法,与 silverlight 中的 Page 类不同,不能直接通过 Page.Orientation 进行设置。而是通过 DisplayInformation 类,方法如下:// 横屏Windows.Graphics....
        阅读全文
                
摘要:昨天一个朋友向我求助一个自定义水印控件绑定的问题,问题出在文本框中输入的文本,不能绑定到相应的依赖属性上(自定义的依赖属性 PassText),他纠结了很久找不出问题所在。问题帮他解决后,这里稍做总结。朋友有问题的文本框代码下载问题描述:1)默认显示效果:2)在“水印密码框”中输入四个 ‘a’:3)...
        阅读全文
                
摘要:应用完成后,在提交微软商店时,可能因为各种各样的问题导致提交审核失败。以前的审核失败并没有总结,希望今后把各种提交审核失败的情况总结一下,以减少今后提交认证时浪费时间。1、商店的屏幕截图上不能包含有关 debug 的信息:2、如果你的应用程序中有对话、留言等社交功能时,需要在用户注册时,询问用户是否已满 13岁:所以在用户单击注册按钮的时候,只需要问一下他是否已满 13岁(多么蛋疼的规定),点击确定则开始用户注册:3、注意页面中的控件在不同的背景主题 设置时,页面中的元素都是可见的,这里举个 wp8 的例子,比如页面的背景是与系统样式相同,按钮的边框和字体颜色设置为白色:当主题为 “黑色” 时
        阅读全文
                
摘要:这篇文章的 demo 是在 (一)的基础上进行的调整,逻辑基本相似。本文只列和 上一篇出不同的代码。为了实现自定义的虚拟化,把上一篇文章的 ListBox 换成 ScrollViewer + ItemsControl,这样组合在实际的项目中又是还是会用到的,比如,如果我们需要对 ScrollViewer 进行很多的控制,比如获取它的“滑动”事件,ScrollViewer中在放置其它控件,或者直接定制它的样式等等(当然可以通过 VisualTreeHelper 也可以获取 ListBox 中的 ScrollViewer)。ListBox (继承自 ItemsControl)内部的实现就是封装了 
        阅读全文
                
摘要:在实际的项目开发过程中,应用的性能优化是一个永恒的话题,也是开发者群里最常讨论的话题之一,我在之前的公司做 wp项目时,也遇到过性能的瓶颈。当页面中加载的内容越来越多时,内存涨幅非常明显(特别是一些壁纸类的应用,当用户向下滑动列表加载更多),当内存超过 120MB 有些机型的发热明显,如果内存继续上涨,发热事小,内存泄露后,系统会直接关闭应用。在 wp 系统中自带的 ListBox 等控件也提供内存虚拟化,但是如果用得不好,可能会破坏虚拟化。微软 MSDN :Windows Phone 的应用性能注意事项MSDN 部分摘抄:在Silverlight中,为了将数据显示给用户,我们需要加载数据和绑
        阅读全文
                
摘要:实验3-引入 .net 中的 events 到 Rx目标:前面实验中的使用各种工厂构造方法创建一个 可观察序列是一个部分。把 .net 中现有的异步数据源进行关联是更重要的事情。在这次实验中我们将看到使用 FromEvent 操作来把 .net 中的 event作为一个 observable 序列导入到 Rx。每次事件触发,一个 OnNext 消息会被传递到 observable 序列。背景:Rx 的目标不是代替现有的异步编程模型,比如 .net 事件,异步模型或者 Task Parallel Library。这些已有的理论通常很适合直接使用,比如在 C# 中使用 event handles。
        阅读全文
                
摘要:注:本文的工程是基于 vs2010 的,在 vs2012 中区别不大。本文的意图是让读者熟悉 Reactive Extension for .net(Rx) 的使用。通过一系列的例子,让读者感受基于 observable概念的Rx 异步编程组合的威力。准备 为了完成下面的练习需要读者有以下的准备:1)了解 .net 和 C# 编程语言2)了解异步编程的概念和相关的组合3)安装了 vs2010 和 .net 44)在 MSDN DevLabs (http://msdn.microsoft.com/en-us/devlabs/default.aspx)安装 Rx for .net 4Rx 是什么?
        阅读全文
                
摘要:这篇是 Windows Phone 自定义弹出框和 Toast 通知的简化版,区别就是之前的自定义 MessageBox控件是整个 app 中所有页面共享的,下面的简化版 MessageBox 只是应用于 MainPage 页面中,“询问用户是否退出”的自定义弹出框。 在应用或游戏程序中,经常的一个场景就是在用户点击 Back 键时,应用询问用户是否退出,通常是重写Page 页面的事件: protected override async void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)但是,当弹出 MessageBox .
        阅读全文
                
摘要:1、概述 在 Visual Studio 中,有一个快捷编辑代码的功能,比如当我们在 VS 编辑器(C#)中写出关键字 foreach 后,敲击一下 Tab 键,VS 就帮我们自动补全:(插入代码段的快捷键 Ctrl + K + X) foreach (var item in collection) { } 我的电脑是 Windows8的系统,编辑器版本是 Visual Studio 2012,编辑器默认安装的代码片段路径: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC#\Snippets\2052\...
        阅读全文
                
摘要:有时候,在应用第一次被打开时,可能因为某些条件而需要跳转到其他页面,而不是 MainPage.xaml 页面。 解决方法,在 App.xaml.cs 页面中的 InitializePhoneApplication 方法中,注册 RootFrame 的 Navigating事件 : // 当请求新的导航时发生。RootFrame.Navigating += RootFrame_Navigating;在相应的方法中,判断跳转的URI,如果满足某些条件,则切换跳转: void RootFrame_Navigating(object sender, NavigatingCancelE...
        阅读全文
                
摘要:因为之前的 windows phone 应用是基于 7.1 SDK 开发的,现在随着 Windows Phone 8 产品的上市,之前的应用需要做一下分辨率适配。目前,新版的 Windows Phone CSDN 文档还只有英文版,想着就把它翻译一下,加深印象。大概浏览了一下新闻,即将上市的 Wi...
        阅读全文
                
摘要:因为 wp 7.1版本的 sdk 默认是安装在 windows 7 环境下,所以在 win 8 下安装时会报错,解决方法:方法一:1)下载并安装:http://www.xbox.com/en-US/LIVE/PC/DownloadClient2) 安装 wp 7.1 SDK 即可成功。后可再安装 7.1.1方法二:或者按照微软wp博客所说,只安装7.1.1更新即可:http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/03/26/wpsdk-711-now-available.aspxWindows8 下安装 Zune:http
        阅读全文
                
摘要:1、http://blogs.windows.com/buildingapps/2012/01/31/memory-profiling-for-application-performance/http://www.developer.nokia.com/Community/Wiki/Best_pra...
        阅读全文
                
摘要:打开Toolkit源码中的Generic.xaml文件可以看到其默认样式,发现接结构组成元素为:ToggleSwitch其中,ToggleSwitch又由以下几个部分组成:HeaderContentToogleSwitchButtonToogleSwitchButtonToggleSwitchButton由以若干个Grid和Boder组成,它们分别是:Grid:SwitchRootGrid:SwitchTrackGrid:SwitchBottomRectangle:SwitchBackground(包含两个Border,A和B)Border:SwitchThumbBorder:ThumbCen
        阅读全文
                
摘要:1,不要在 UI 线程上处理大量计算-- 如果可以的话,尽量避免在 UI 线程上做长时间运算,尽量让 UI 能够响应。 2,不要使用值转换器 -- 比起直接使用可用的数据,值转换器对性能的影响很大。 3,如果不是必须,不要使用依赖属性 -- 如果常规属性就能达到需要的功能的话,那就使用常规属性。 4,尽量少使用第三方组件 -- 这样可以让你的应用启动更快。 5,将程序集拆分 -- 如果不是必要,请不要一次性装载所有页面。 6,将图像与数据缓存 -- 我们都知道下载外部资源都是需要消耗时间的,如果你能将这些东西都缓存下来,那么可以节约大量的带宽与运行时间。 7,使用"boot loa.
        阅读全文
                
摘要:xaml: <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <ScrollViewer HorizontalScrollBarVisibility="Visible"> <TextBox x:Name="txtDevice" Height="684" /> </ScrollViewer> </Grid>C#: void GetDeviceInf
        阅读全文
                
摘要:void MainPage_Loaded(object sender, RoutedEventArgs e) { #region 回到顶部按钮 // Visual States are always on the first child of the control template FrameworkElement element = VisualTreeHelper.GetChild(viewer_hot, 0) as FrameworkElement; if (element != n...
        阅读全文
                
摘要:<ScrollViewer x:Name="viewer_hot"> <Grid Margin="0,-60,0,0"> <Grid.RowDefinitions> <RowDefinition Height="60"/> <RowDefinition Height="Auto"/> </Grid.RowDefinit...
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号