Edi Wang

Windows Development 85


Windows 10 UWP开发:如何定时触发后台任务

今天在爆UWP的定时后台任务,坑有点多,爆出屎来了。有的坑在很多网上的文章里都没提到,非常的坑。刚刚开荒成功了,把经验写出来分享: 1. 写一个后台任务的类,继承IBackgroundTask接口 通常,在设计应用程序结构的时候,我们会建类库项目(Class Library)放这些类。比如 FarkBackgroundTask.Core 因为是UWP工程,所以建的类库也要是Universal Windows的。注意,这里我们已经埋下了一个巨坑,稍后会解释。 我们的类代码如下: public class SayFarkTask : IBackgroundTask { public void Run(IBackgroundTaskInstance taskInstance) { Debug.Write("================ F...

Timer Windows 10 UWP Task

Windows 10 UWP开发:如何弹出消息通知

在UWP的App中,弹出消息通知的方法和WinRT一致,注意是App内的消息通知(toast notification)而不是从服务器端推送的通知。主要有几个步骤: 1. 创建XML定义 // 1. create element ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); 这里面的消息模板有好几种: // // Summary: // 指定要在消息通知中使用的模版。 [ContractVersion(typeof(UniversalApiContract), 65536)] public enu...

Windows 10 UWP

Windows 10 UWP开发:如何实现WP8的Pivot效果

UWP的Pivot控件动画效果和以前Windows 8, Windows Phone 8的Pivot不一样,在切换PivotItem的时候,当前选择的Item的Header并不会跑到第一个去,而是单纯的像Tab选项卡那样高亮当前的Tab而已。 我个人喜欢Windows 8的Pivot,即下面这个GIF这样的(这是我正在开发的一个UWP应用)。如果你也喜欢传统风格的Pivot,可以参考以下方法。 实现方法特别简单,只要拿Blend从WP8.1 Runtime的Pivot里把默认样式导出来,稍微改下就行:...

Windows 10 UWP

Windows 10 UWP开发:自定义标题栏

UWP和WPF以及以前Windows 8.1的WinRT应用有些不一样的地方。首先就是标题栏,以前Windows 8.1的应用都是全屏的,没有标题栏,Windows 10里面应用可以窗口化运行,所以我们也能够利用标题栏做一些定制。本文针对初学者,可能写的比较啰嗦。 一、首先是最基本的,如何改变标题栏及按钮的颜色 标题栏的对象位于Windows.UI.ViewManagement.ApplicationView类里,有个属性是 public ApplicationViewTitleBar TitleBar { get; } 为了能够访问这个属性,我们需要先取得当前应用窗口的view: var view = ApplicationView.GetForCurrentView(); 拿到view对象后,就能对TitleBar属性操作了,标题栏的活动和非活动状态的前景色和背景色可以这样...

Windows 10 UWP

浦发网银插件导致Surface Pro 3不断蓝屏的解决办法

安装浦发网银插件后,Windows 8.1 64位版的系统在部分机器上一开机就蓝屏,比如Surface Pro 3,蓝屏消息是: IRQL_NOT_LESS_OR_EQUAL 这通常是驱动问题导致的。连续启动失败2次后,Windows 8.1会自动进入高级启动,可以用安全模式进系统WINDBG一下dump文件,发现是一个叫peckp_x64.sys的驱动爆的。这个驱动是浦发银行网银插件的一部分,是用来保护键盘输入的,也就是防止键盘记录的盗号木马,但是和Surface Pro 3的驱动冲突,所以导致开机蓝屏。 解决办法如下: 1. 将Windows 8.1启动到安全模式,Surface Pro 3的bitlocker recovery key可以用一台能翻墙的电脑到 onedrive.com/recoverykey 里去找。 2. 在控制面板,程序和功能里,按正常办法卸载浦发插...

Surface BSOD Drivers

如何获得Windows 8.1中已记住的WIFI的明文密码

网上广为流传的方法只能看当前连接着的WIFI的密码,就像这样。是看不到其他被Windows记住的WIFI连接的密码的。Windows 8.1的设置App里也只能删除已记住的WIFI,不让你看密码。 其实,就算你没有连接着那个WIFI,还是有办法看密码的。 1.用管理员权限运行cmd或者powershell,执行: netsh wlan show profiles 显示已被Windows保存的所有WIFI名称的列表 2. 执行这条命令获得明文密码: netsh wlan show profile name=“WIFI名称” key=clear 如果你足够蛋疼,你还可以写个脚本遍历机器上所有的WIFI,得到他们的密码,然后存个txt什么的,你们懂的。...

Windows WIFI Password

Windows Phone 个人开发者一年回顾

今天是2015年1月25日,距我的第一个WP应用上架正好一年。这一年里,因为选择Windows Phone,开发Windows Phone,我收获了很多。我虽然工作是ASP.NET网站开发,WP只是业余的新手,但短短一年来,它带给我太多的美好。有技术上的成就,有许多新的朋友。 我想回顾一年来我和WP的点点滴滴。同时也向和我一样始终坚守在这个平台的个人开发者们致敬。 最早开始写WP应用其实是2013年7月,在我买了第一部WP手机以后,看着Channel  9上的视频边学边写。那时候安卓和苹果早就平分天下了,几乎没有WP什么事。当时我选择Windows Phone开发,仅仅是因为我在Windows平台上已经掌握的编程技能可以用于WP开发,不会耗费太大的学习成本,比如C#、Silverlight等技术。和我最早研究计算机一样,我并没有把赚钱当作目的和目标,而是纯粹的兴趣,所以至今我没有靠WP...

Windows Phone WP

Windows Phone Runtime 8.1如何设置最小化的工具栏

以前在Silverlight Runtime下,要设置一个最小化(缩紧)的工具栏,给ApplicationBar设置Mode属性为Minimized就行 到了Windows Phone 8.1运行时下,这个Mode属性木有了。就算你不加任何按钮或菜单,在XAML设计器里起来是最小化了,运行时还是会展开的。比如这段代码: 在XAML设计器里的效果: 运行时的效果: 草草草草草。。。 查了下stackoverflow,其实CommandBar有个新的属性,ClosedDisplayMode,可以实现Minimized。注意,加在CommandBar上,不是Page.BottomAppBar。 这样就OK了。...

WP WinRT XAML

Windows Phone Runtime 8.1 按返回键彻底关闭App

Windows Phone Runtime 8.1里面的坑不止一点点,最明显的是很多应用以前可以通过按返回键关闭,但是在8.1之后,如果你用了WinRT的runtime写程序,就会发现返回键的行为仅仅是返回WP的主屏幕,而不是关闭App。长按返回键你会发现你的App是被“最小化”在后台了。WP8.1的新版日历应用也是这样。 虽然这对系统性能没有什么影响,但是让处女座用户看见了就会感觉不爽,所以我们还是把它改掉吧。 WinRT里面这个硬件返回按钮是有专门的事件的:HardwareButtons.BackPressed。我们需要处理的情况仅仅是在应用的主页面上,按手机返回按钮关闭App,所以不需要override全局的HardwareButtons.BackPressed事件。只需要在主页面(通常是MainPage.xaml.cs)里override两个导航事件: protected...

WP WinRT

Windows Phone Runtime 8.1 如何显示系统状态栏(以前的SystemTray)

首先。。。虽然我文章写的2,但是国内愿意主动分享WP开发经验的博客太少了,大家都是粉,为了这个平台不容易,所以我有点什么都会拿出来分享,觉得文章菜的请不要喷。。。 开发WP8.1的小伙伴们如果选择了WinRT的runtime,可能会被坑:如果你的手机主题是黑色的,但是你的应用选择了白色主题,就像这样 RequestedTheme="Light" 那你会发现,虽然你在写UI配色方面偷懒了许多,但是WP的系统状态栏(显示信号、时间的地方),也就是Silverlight Runtime里称作SystemTray的,配色并不会因为你选择了“Light”而变成黑色这种对比色,它始终是跟着手机系统设置走的(黑色主题则为白色,白色主题则为黑色),于是你的应用就会出现一条白色的状态栏在手机顶端,用户再也不能愉快的看时间了。草草草草草。 当你想修这个问题的时候,你又会发现微软已经把Silverlig...

WP WinRT