Edi Wang

Windows Development 80


Windows Phone 8开发: 如何让图片自适应黑色、白色主题

前几天发现我的App有个bug,即某个页面的电话图标在白底黑字的主题下会消失。我的电话图标用的是一个白色的PNG图片,在WP默认的黑底白字主题下,就像是这样: 然而换了白底黑字,图就看不到了: 要解决这个问题我们固然可以准备两张图片然后用编程的方法去加载,但最简单的做法是通过Brush来搞: 原先的代码是这样的: 用了Brush给它刷上WP当前主题的前景色(PhoneForegroundBrush): 于是在白色背景的主题下我们就得到了自动被刷成黑色的图片:...

主题 WP

Windows Phone 8: 如何自定义Pivot头部样式

WP的Pivot控件很牛逼,但想要调整样式没有什么比较直观的方法。许多少年只会改HeaderTemplate,但要做到下面这种效果,HeaderTemplate是不够的。 首先,正确的方法是通过模板的样式来做。比如上面这张图的样式,就需要在App.xaml里定义自己的Pivot控件样式。下面的代码加在Application.Resources节点下,这样你的每一个页面就都能用到这个样式了。...

WP Pivot Style

我的第一个Windows Phone应用:《上海影城排片查询》已发布

上海影城排片查询免费 在应用商店中查看 查询上海几所影城最新上映的电影。 - 显示票价、放映厅、放映时间 - 保存到日历并定时提醒 - 查看影院地址 - 直接呼叫影院电话 - 邮件、短信分享 数据来自上海影城官网,一般只更新未来3天的排片表。 这个App采用了微软哥 @韦恩卑鄙 的 MVVM-Sidekick框架开发。很多基友问我数据怎么来的,由于官方不提供SOAP或REST服务,所以我是解析官网排片表的HTML得到的,大家不要在意这些细节。下个版本我会在Windows Azure上构建专门的服务以保证官网的改动不会要求更新App。...

WP 上海影城

Windows Phone 8 检查网络状态、打开网络设置

开发WP应用的时候,如果你的应用需要互联网连接,那么检测当前网络是否可用并给出提示是非常必要的。Windows Phone 8 检查网络是否可用的 API如下: System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable() 这个API会检查手机网络或WIFI是否可用,返回bool类型结果。 转到网络设置用的是ConnectionSettingsTask对象,ConnectionSettingsType属性决定了打开的设置页面是哪种连接类型,如果要打开WLAN设置,代码如下: var connectionSettingsTask = new ConnectionSettingsTask { ConnectionSettingsType = ConnectionSettingsType.WiFi...

WP WIFI 网络

Windows Phone 8: MVVM-Sidekick框架如何绑定ProgressIndicator

MVVM(Model-View-ViewModel)是xaml开发者常用的装逼模式,WP应用也不例外,除了我们常用的Prism和MVVM Light,现在还有个后起之秀叫做MVVM-Sidekick。用了它,就可以充分利用.NET4.5的async await来提升逼格了,这个轻量级框架也提供了非常便捷的代码模板,同样完成一个功能需要花费的精力比同类框架要少。具体介绍可以看它的官网:https://github.com/waynebaby/mvvM-Sidekick 但是,在DataContext的处理上,这个框架有些特殊。前几天我就爆掉了。 简单的说,我的需求就是在Windows Phone页面上显示一个进度指示器,把后台的Busy和Message属性绑定到ProgressIndicator上面。这个简单的任务在MVVM Light框架中与其他UI控件的绑定完全一致,可以这么写:...

MVVM

如何在设计器中显示Windows Phone 8的菜单栏(ApplicationBar)

最近正式开始玩WP开发,把一些小技巧和经验写成单独的一篇篇文章,虽然很菜, 通常,我们新建一个Windows Phone应用程序后,菜单栏的代码默认是在MainPage.xaml.cs文件中的。只要取消模板里的这些注释就能在运行时看到菜单栏。 但是这么做有个缺点,就是无法在设计器里直观的看到菜单栏,不便于我们设计和调整UI。其实我们不必使用后台代码来实现菜单栏。它可以直接定义在xaml文件里。打开MainPage.xaml,在LayoutRoot的Grid之外(注意不要定义在Grid里边),加入代码: 这样我们就能在设计器里得到一个菜单栏了。 要做半透明的菜单栏也很方便,只要给shell:ApplicationBar加上Opacity="0.5"属性,0....

WP ApplicationBar

Windows Phone 8 文本框如何限定软键盘类型

在开发Windows Phone应用时,一个非常通用的需求就是限定文本框的输入内容。最直接的办法是限定弹出的软键盘的类型。比如有些文本框只允许输入数字,那就弹出数字键盘,不让用户选择其他键盘。这样做的好处有两个:节省后台验证逻辑、方便用户交互。 要限定键盘类型,做法很简单,就是设置TextBox控件的InputScope属性。比如输入电话号码的文本框可以这样写: 这样弹出的文本框就是数字键盘: 所有的InputScope类型见下表: 翻译自MSDN:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh393998%28v=vs.105%29.aspx 键盘 备注 InputScope 包括自动修正、建议和表情 Text 默认键盘 AddressCi...

InputScope TextBox

Windows Phone 8 列表控件(LongListSelector)分组

Windows Phone 8的列表控件天生支持分组,就像人脉应用中的类似,可以快速根据拼音首字母定位。在列表视图中点击分组标题后显示所有的组名,点击组名即可定位到这个组。我们自己开发的WP应用也能做到这样的分组功能,但需要一些额外的代码。下面的例子来自我的一个WP应用,有图有真相: 分组视图: 实现LongListSelector分组其实很简单。 1. 首先,你需要一个分组的助手类,这是一个相对标准的类,MSDN上抄来的: public class Group : List { public Group(string name, IEnumerable items) : base(items) { this.Title = name; } public string Title {...

Windows Phone

使用PowerShell操作Windows Event Log

PowerShell是个很牛逼的命令行工具,在Windows 7以后的系统里都默认自带。学会了PowerShell就可以提升逼格,让妹子崇拜。今天就教大家用PowerShell操作Windows的Event Log。 首先,启动PowerShell很简单,只需要在开始菜单里输入Power,就能找到了(Windows 8用户可以直接在开始屏幕里搜索Power)。 启动PowerShell后,你可以看到一个这样的界面。和CMD不同,它是深蓝色背景的,并且路径前多了PS前缀。看起来很厉害的样子: 有用程序写过Windows Event Log的童鞋都知道,我们的首要任务是创建一个Log和一个Source。PowerShell里语法如下: new-eventlog -LogName 日志名称 -Source 源名称 比如,我们创建一个Name为Game,Source为CS的Log...

Windows PowerShell EventLog

How to enable IPC share on Windows 8/8.1/10

Update 2017.2: This will also work with Windows 10 最近为了贯彻微软先进思想,给台式机换了个Windows 8,许多地方爆出了翔,但用惯以后还是很舒服的。在Windows 8里,操作系统的许多设置被微软在黑暗中偷偷的改过了。比如局域网共享文件夹,在以前版本的Windows上,如果知道对方机器的管理员帐户密码,就可以在路径后面加上“盘符$"来直接访问对方的整个硬盘。比如在:\\DiaosPC\D$,系统会弹出一个身份验证对话框,输入DiaosPC上的管理员帐号后,即可访问他D盘的内容。在Windows 2000的年代,黑客们可以利用这点进行“空连接”攻击,给对方下载木马,然后用at命令定时执行,这些黑暗的历史就不告诉大家了。。。。 然而,这个功能在Windows 8上似乎被撸掉了,虽然在管理工具里还能见到所有盘符的管理共享,但局域网中是无...

共享 Windows 8